1OpCapability Shader 2%1 = OpExtInstImport "GLSL.std.450" 3OpMemoryModel Logical GLSL450 4OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise 5OpExecutionMode %_entrypoint_v OriginUpperLeft 6OpName %sk_FragColor "sk_FragColor" 7OpName %sk_Clockwise "sk_Clockwise" 8OpName %_UniformBuffer "_UniformBuffer" 9OpMemberName %_UniformBuffer 0 "testInputs" 10OpMemberName %_UniformBuffer 1 "colorGreen" 11OpMemberName %_UniformBuffer 2 "colorRed" 12OpName %_entrypoint_v "_entrypoint_v" 13OpName %main "main" 14OpName %expectedA "expectedA" 15OpName %expectedB "expectedB" 16OpDecorate %sk_FragColor RelaxedPrecision 17OpDecorate %sk_FragColor Location 0 18OpDecorate %sk_FragColor Index 0 19OpDecorate %sk_Clockwise BuiltIn FrontFacing 20OpMemberDecorate %_UniformBuffer 0 Offset 0 21OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 22OpMemberDecorate %_UniformBuffer 1 Offset 16 23OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 24OpMemberDecorate %_UniformBuffer 2 Offset 32 25OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 26OpDecorate %_UniformBuffer Block 27OpDecorate %10 Binding 0 28OpDecorate %10 DescriptorSet 0 29OpDecorate %expectedA RelaxedPrecision 30OpDecorate %30 RelaxedPrecision 31OpDecorate %expectedB RelaxedPrecision 32OpDecorate %33 RelaxedPrecision 33OpDecorate %40 RelaxedPrecision 34OpDecorate %41 RelaxedPrecision 35OpDecorate %42 RelaxedPrecision 36OpDecorate %43 RelaxedPrecision 37OpDecorate %49 RelaxedPrecision 38OpDecorate %50 RelaxedPrecision 39OpDecorate %51 RelaxedPrecision 40OpDecorate %52 RelaxedPrecision 41OpDecorate %53 RelaxedPrecision 42OpDecorate %62 RelaxedPrecision 43OpDecorate %63 RelaxedPrecision 44OpDecorate %65 RelaxedPrecision 45OpDecorate %66 RelaxedPrecision 46OpDecorate %67 RelaxedPrecision 47OpDecorate %76 RelaxedPrecision 48OpDecorate %77 RelaxedPrecision 49OpDecorate %78 RelaxedPrecision 50OpDecorate %87 RelaxedPrecision 51OpDecorate %88 RelaxedPrecision 52OpDecorate %91 RelaxedPrecision 53OpDecorate %92 RelaxedPrecision 54OpDecorate %93 RelaxedPrecision 55OpDecorate %94 RelaxedPrecision 56OpDecorate %101 RelaxedPrecision 57OpDecorate %102 RelaxedPrecision 58OpDecorate %104 RelaxedPrecision 59OpDecorate %105 RelaxedPrecision 60OpDecorate %106 RelaxedPrecision 61OpDecorate %107 RelaxedPrecision 62OpDecorate %115 RelaxedPrecision 63OpDecorate %116 RelaxedPrecision 64OpDecorate %118 RelaxedPrecision 65OpDecorate %119 RelaxedPrecision 66OpDecorate %120 RelaxedPrecision 67OpDecorate %121 RelaxedPrecision 68OpDecorate %129 RelaxedPrecision 69OpDecorate %131 RelaxedPrecision 70OpDecorate %132 RelaxedPrecision 71OpDecorate %141 RelaxedPrecision 72OpDecorate %144 RelaxedPrecision 73OpDecorate %145 RelaxedPrecision 74%float = OpTypeFloat 32 75%v4float = OpTypeVector %float 4 76%_ptr_Output_v4float = OpTypePointer Output %v4float 77%sk_FragColor = OpVariable %_ptr_Output_v4float Output 78%bool = OpTypeBool 79%_ptr_Input_bool = OpTypePointer Input %bool 80%sk_Clockwise = OpVariable %_ptr_Input_bool Input 81%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float 82%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 83%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 84%void = OpTypeVoid 85%15 = OpTypeFunction %void 86%v2float = OpTypeVector %float 2 87%float_0 = OpConstant %float 0 88%19 = OpConstantComposite %v2float %float_0 %float_0 89%_ptr_Function_v2float = OpTypePointer Function %v2float 90%23 = OpTypeFunction %v4float %_ptr_Function_v2float 91%_ptr_Function_v4float = OpTypePointer Function %v4float 92%float_n1_25 = OpConstant %float -1.25 93%float_0_5 = OpConstant %float 0.5 94%30 = OpConstantComposite %v4float %float_n1_25 %float_0 %float_0_5 %float_0_5 95%float_1 = OpConstant %float 1 96%33 = OpConstantComposite %v4float %float_n1_25 %float_0 %float_0 %float_1 97%false = OpConstantFalse %bool 98%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 99%int = OpTypeInt 32 1 100%int_0 = OpConstant %int 0 101%v2bool = OpTypeVector %bool 2 102%v3float = OpTypeVector %float 3 103%v3bool = OpTypeVector %bool 3 104%v4bool = OpTypeVector %bool 4 105%int_1 = OpConstant %int 1 106%int_2 = OpConstant %int 2 107%_entrypoint_v = OpFunction %void None %15 108%16 = OpLabel 109%20 = OpVariable %_ptr_Function_v2float Function 110OpStore %20 %19 111%22 = OpFunctionCall %v4float %main %20 112OpStore %sk_FragColor %22 113OpReturn 114OpFunctionEnd 115%main = OpFunction %v4float None %23 116%24 = OpFunctionParameter %_ptr_Function_v2float 117%25 = OpLabel 118%expectedA = OpVariable %_ptr_Function_v4float Function 119%expectedB = OpVariable %_ptr_Function_v4float Function 120%136 = OpVariable %_ptr_Function_v4float Function 121OpStore %expectedA %30 122OpStore %expectedB %33 123%36 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 124%40 = OpLoad %v4float %36 125%41 = OpCompositeExtract %float %40 0 126%35 = OpExtInst %float %1 FMin %41 %float_0_5 127%42 = OpLoad %v4float %expectedA 128%43 = OpCompositeExtract %float %42 0 129%44 = OpFOrdEqual %bool %35 %43 130OpSelectionMerge %46 None 131OpBranchConditional %44 %45 %46 132%45 = OpLabel 133%48 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 134%49 = OpLoad %v4float %48 135%50 = OpVectorShuffle %v2float %49 %49 0 1 136%51 = OpCompositeConstruct %v2float %float_0_5 %float_0_5 137%47 = OpExtInst %v2float %1 FMin %50 %51 138%52 = OpLoad %v4float %expectedA 139%53 = OpVectorShuffle %v2float %52 %52 0 1 140%54 = OpFOrdEqual %v2bool %47 %53 141%56 = OpAll %bool %54 142OpBranch %46 143%46 = OpLabel 144%57 = OpPhi %bool %false %25 %56 %45 145OpSelectionMerge %59 None 146OpBranchConditional %57 %58 %59 147%58 = OpLabel 148%61 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 149%62 = OpLoad %v4float %61 150%63 = OpVectorShuffle %v3float %62 %62 0 1 2 151%65 = OpCompositeConstruct %v3float %float_0_5 %float_0_5 %float_0_5 152%60 = OpExtInst %v3float %1 FMin %63 %65 153%66 = OpLoad %v4float %expectedA 154%67 = OpVectorShuffle %v3float %66 %66 0 1 2 155%68 = OpFOrdEqual %v3bool %60 %67 156%70 = OpAll %bool %68 157OpBranch %59 158%59 = OpLabel 159%71 = OpPhi %bool %false %46 %70 %58 160OpSelectionMerge %73 None 161OpBranchConditional %71 %72 %73 162%72 = OpLabel 163%75 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 164%76 = OpLoad %v4float %75 165%77 = OpCompositeConstruct %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 166%74 = OpExtInst %v4float %1 FMin %76 %77 167%78 = OpLoad %v4float %expectedA 168%79 = OpFOrdEqual %v4bool %74 %78 169%81 = OpAll %bool %79 170OpBranch %73 171%73 = OpLabel 172%82 = OpPhi %bool %false %59 %81 %72 173OpSelectionMerge %84 None 174OpBranchConditional %82 %83 %84 175%83 = OpLabel 176%86 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 177%87 = OpLoad %v4float %86 178%88 = OpCompositeExtract %float %87 0 179%89 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 180%91 = OpLoad %v4float %89 181%92 = OpCompositeExtract %float %91 0 182%85 = OpExtInst %float %1 FMin %88 %92 183%93 = OpLoad %v4float %expectedB 184%94 = OpCompositeExtract %float %93 0 185%95 = OpFOrdEqual %bool %85 %94 186OpBranch %84 187%84 = OpLabel 188%96 = OpPhi %bool %false %73 %95 %83 189OpSelectionMerge %98 None 190OpBranchConditional %96 %97 %98 191%97 = OpLabel 192%100 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 193%101 = OpLoad %v4float %100 194%102 = OpVectorShuffle %v2float %101 %101 0 1 195%103 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 196%104 = OpLoad %v4float %103 197%105 = OpVectorShuffle %v2float %104 %104 0 1 198%99 = OpExtInst %v2float %1 FMin %102 %105 199%106 = OpLoad %v4float %expectedB 200%107 = OpVectorShuffle %v2float %106 %106 0 1 201%108 = OpFOrdEqual %v2bool %99 %107 202%109 = OpAll %bool %108 203OpBranch %98 204%98 = OpLabel 205%110 = OpPhi %bool %false %84 %109 %97 206OpSelectionMerge %112 None 207OpBranchConditional %110 %111 %112 208%111 = OpLabel 209%114 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 210%115 = OpLoad %v4float %114 211%116 = OpVectorShuffle %v3float %115 %115 0 1 2 212%117 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 213%118 = OpLoad %v4float %117 214%119 = OpVectorShuffle %v3float %118 %118 0 1 2 215%113 = OpExtInst %v3float %1 FMin %116 %119 216%120 = OpLoad %v4float %expectedB 217%121 = OpVectorShuffle %v3float %120 %120 0 1 2 218%122 = OpFOrdEqual %v3bool %113 %121 219%123 = OpAll %bool %122 220OpBranch %112 221%112 = OpLabel 222%124 = OpPhi %bool %false %98 %123 %111 223OpSelectionMerge %126 None 224OpBranchConditional %124 %125 %126 225%125 = OpLabel 226%128 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 227%129 = OpLoad %v4float %128 228%130 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 229%131 = OpLoad %v4float %130 230%127 = OpExtInst %v4float %1 FMin %129 %131 231%132 = OpLoad %v4float %expectedB 232%133 = OpFOrdEqual %v4bool %127 %132 233%134 = OpAll %bool %133 234OpBranch %126 235%126 = OpLabel 236%135 = OpPhi %bool %false %112 %134 %125 237OpSelectionMerge %139 None 238OpBranchConditional %135 %137 %138 239%137 = OpLabel 240%140 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 241%141 = OpLoad %v4float %140 242OpStore %136 %141 243OpBranch %139 244%138 = OpLabel 245%142 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 246%144 = OpLoad %v4float %142 247OpStore %136 %144 248OpBranch %139 249%139 = OpLabel 250%145 = OpLoad %v4float %136 251OpReturnValue %145 252OpFunctionEnd 253