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 %constGreen "constGreen" 15OpName %expectedA "expectedA" 16OpName %expectedB "expectedB" 17OpDecorate %sk_FragColor RelaxedPrecision 18OpDecorate %sk_FragColor Location 0 19OpDecorate %sk_FragColor Index 0 20OpDecorate %sk_Clockwise BuiltIn FrontFacing 21OpMemberDecorate %_UniformBuffer 0 Offset 0 22OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 23OpMemberDecorate %_UniformBuffer 1 Offset 16 24OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 25OpMemberDecorate %_UniformBuffer 2 Offset 32 26OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 27OpDecorate %_UniformBuffer Block 28OpDecorate %10 Binding 0 29OpDecorate %10 DescriptorSet 0 30OpDecorate %constGreen RelaxedPrecision 31OpDecorate %29 RelaxedPrecision 32OpDecorate %expectedA RelaxedPrecision 33OpDecorate %31 RelaxedPrecision 34OpDecorate %expectedB RelaxedPrecision 35OpDecorate %33 RelaxedPrecision 36OpDecorate %41 RelaxedPrecision 37OpDecorate %42 RelaxedPrecision 38OpDecorate %43 RelaxedPrecision 39OpDecorate %44 RelaxedPrecision 40OpDecorate %49 RelaxedPrecision 41OpDecorate %51 RelaxedPrecision 42OpDecorate %52 RelaxedPrecision 43OpDecorate %53 RelaxedPrecision 44OpDecorate %54 RelaxedPrecision 45OpDecorate %62 RelaxedPrecision 46OpDecorate %65 RelaxedPrecision 47OpDecorate %66 RelaxedPrecision 48OpDecorate %67 RelaxedPrecision 49OpDecorate %68 RelaxedPrecision 50OpDecorate %76 RelaxedPrecision 51OpDecorate %78 RelaxedPrecision 52OpDecorate %79 RelaxedPrecision 53OpDecorate %86 RelaxedPrecision 54OpDecorate %87 RelaxedPrecision 55OpDecorate %92 RelaxedPrecision 56OpDecorate %93 RelaxedPrecision 57OpDecorate %99 RelaxedPrecision 58OpDecorate %100 RelaxedPrecision 59OpDecorate %101 RelaxedPrecision 60OpDecorate %107 RelaxedPrecision 61OpDecorate %115 RelaxedPrecision 62OpDecorate %116 RelaxedPrecision 63OpDecorate %117 RelaxedPrecision 64OpDecorate %118 RelaxedPrecision 65OpDecorate %125 RelaxedPrecision 66OpDecorate %126 RelaxedPrecision 67OpDecorate %127 RelaxedPrecision 68OpDecorate %128 RelaxedPrecision 69OpDecorate %129 RelaxedPrecision 70OpDecorate %137 RelaxedPrecision 71OpDecorate %138 RelaxedPrecision 72OpDecorate %139 RelaxedPrecision 73OpDecorate %140 RelaxedPrecision 74OpDecorate %141 RelaxedPrecision 75OpDecorate %149 RelaxedPrecision 76OpDecorate %150 RelaxedPrecision 77OpDecorate %151 RelaxedPrecision 78OpDecorate %157 RelaxedPrecision 79OpDecorate %158 RelaxedPrecision 80OpDecorate %163 RelaxedPrecision 81OpDecorate %164 RelaxedPrecision 82OpDecorate %165 RelaxedPrecision 83OpDecorate %171 RelaxedPrecision 84OpDecorate %172 RelaxedPrecision 85OpDecorate %173 RelaxedPrecision 86OpDecorate %179 RelaxedPrecision 87OpDecorate %189 RelaxedPrecision 88OpDecorate %192 RelaxedPrecision 89OpDecorate %193 RelaxedPrecision 90%float = OpTypeFloat 32 91%v4float = OpTypeVector %float 4 92%_ptr_Output_v4float = OpTypePointer Output %v4float 93%sk_FragColor = OpVariable %_ptr_Output_v4float Output 94%bool = OpTypeBool 95%_ptr_Input_bool = OpTypePointer Input %bool 96%sk_Clockwise = OpVariable %_ptr_Input_bool Input 97%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float 98%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 99%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 100%void = OpTypeVoid 101%15 = OpTypeFunction %void 102%v2float = OpTypeVector %float 2 103%float_0 = OpConstant %float 0 104%19 = OpConstantComposite %v2float %float_0 %float_0 105%_ptr_Function_v2float = OpTypePointer Function %v2float 106%23 = OpTypeFunction %v4float %_ptr_Function_v2float 107%_ptr_Function_v4float = OpTypePointer Function %v4float 108%float_1 = OpConstant %float 1 109%29 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1 110%31 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1 111%33 = OpConstantComposite %v4float %float_1 %float_1 %float_0 %float_0 112%false = OpConstantFalse %bool 113%float_0_5 = OpConstant %float 0.5 114%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 115%int = OpTypeInt 32 1 116%int_0 = OpConstant %int 0 117%v2bool = OpTypeVector %bool 2 118%v3float = OpTypeVector %float 3 119%v3bool = OpTypeVector %bool 3 120%v4bool = OpTypeVector %bool 4 121%99 = OpConstantComposite %v3float %float_0 %float_0 %float_1 122%127 = OpConstantComposite %v2float %float_0 %float_1 123%139 = OpConstantComposite %v3float %float_0 %float_1 %float_0 124%163 = OpConstantComposite %v2float %float_1 %float_1 125%171 = OpConstantComposite %v3float %float_1 %float_1 %float_0 126%int_1 = OpConstant %int 1 127%int_2 = OpConstant %int 2 128%_entrypoint_v = OpFunction %void None %15 129%16 = OpLabel 130%20 = OpVariable %_ptr_Function_v2float Function 131OpStore %20 %19 132%22 = OpFunctionCall %v4float %main %20 133OpStore %sk_FragColor %22 134OpReturn 135OpFunctionEnd 136%main = OpFunction %v4float None %23 137%24 = OpFunctionParameter %_ptr_Function_v2float 138%25 = OpLabel 139%constGreen = OpVariable %_ptr_Function_v4float Function 140%expectedA = OpVariable %_ptr_Function_v4float Function 141%expectedB = OpVariable %_ptr_Function_v4float Function 142%183 = OpVariable %_ptr_Function_v4float Function 143OpStore %constGreen %29 144OpStore %expectedA %31 145OpStore %expectedB %33 146%37 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 147%41 = OpLoad %v4float %37 148%42 = OpCompositeExtract %float %41 0 149%35 = OpExtInst %float %1 Step %float_0_5 %42 150%43 = OpLoad %v4float %expectedA 151%44 = OpCompositeExtract %float %43 0 152%45 = OpFOrdEqual %bool %35 %44 153OpSelectionMerge %47 None 154OpBranchConditional %45 %46 %47 155%46 = OpLabel 156%49 = OpCompositeConstruct %v2float %float_0_5 %float_0_5 157%50 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 158%51 = OpLoad %v4float %50 159%52 = OpVectorShuffle %v2float %51 %51 0 1 160%48 = OpExtInst %v2float %1 Step %49 %52 161%53 = OpLoad %v4float %expectedA 162%54 = OpVectorShuffle %v2float %53 %53 0 1 163%55 = OpFOrdEqual %v2bool %48 %54 164%57 = OpAll %bool %55 165OpBranch %47 166%47 = OpLabel 167%58 = OpPhi %bool %false %25 %57 %46 168OpSelectionMerge %60 None 169OpBranchConditional %58 %59 %60 170%59 = OpLabel 171%62 = OpCompositeConstruct %v3float %float_0_5 %float_0_5 %float_0_5 172%64 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 173%65 = OpLoad %v4float %64 174%66 = OpVectorShuffle %v3float %65 %65 0 1 2 175%61 = OpExtInst %v3float %1 Step %62 %66 176%67 = OpLoad %v4float %expectedA 177%68 = OpVectorShuffle %v3float %67 %67 0 1 2 178%69 = OpFOrdEqual %v3bool %61 %68 179%71 = OpAll %bool %69 180OpBranch %60 181%60 = OpLabel 182%72 = OpPhi %bool %false %47 %71 %59 183OpSelectionMerge %74 None 184OpBranchConditional %72 %73 %74 185%73 = OpLabel 186%76 = OpCompositeConstruct %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5 187%77 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 188%78 = OpLoad %v4float %77 189%75 = OpExtInst %v4float %1 Step %76 %78 190%79 = OpLoad %v4float %expectedA 191%80 = OpFOrdEqual %v4bool %75 %79 192%82 = OpAll %bool %80 193OpBranch %74 194%74 = OpLabel 195%83 = OpPhi %bool %false %60 %82 %73 196OpSelectionMerge %85 None 197OpBranchConditional %83 %84 %85 198%84 = OpLabel 199%86 = OpLoad %v4float %expectedA 200%87 = OpCompositeExtract %float %86 0 201%88 = OpFOrdEqual %bool %float_0 %87 202OpBranch %85 203%85 = OpLabel 204%89 = OpPhi %bool %false %74 %88 %84 205OpSelectionMerge %91 None 206OpBranchConditional %89 %90 %91 207%90 = OpLabel 208%92 = OpLoad %v4float %expectedA 209%93 = OpVectorShuffle %v2float %92 %92 0 1 210%94 = OpFOrdEqual %v2bool %19 %93 211%95 = OpAll %bool %94 212OpBranch %91 213%91 = OpLabel 214%96 = OpPhi %bool %false %85 %95 %90 215OpSelectionMerge %98 None 216OpBranchConditional %96 %97 %98 217%97 = OpLabel 218%100 = OpLoad %v4float %expectedA 219%101 = OpVectorShuffle %v3float %100 %100 0 1 2 220%102 = OpFOrdEqual %v3bool %99 %101 221%103 = OpAll %bool %102 222OpBranch %98 223%98 = OpLabel 224%104 = OpPhi %bool %false %91 %103 %97 225OpSelectionMerge %106 None 226OpBranchConditional %104 %105 %106 227%105 = OpLabel 228%107 = OpLoad %v4float %expectedA 229%108 = OpFOrdEqual %v4bool %31 %107 230%109 = OpAll %bool %108 231OpBranch %106 232%106 = OpLabel 233%110 = OpPhi %bool %false %98 %109 %105 234OpSelectionMerge %112 None 235OpBranchConditional %110 %111 %112 236%111 = OpLabel 237%114 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 238%115 = OpLoad %v4float %114 239%116 = OpCompositeExtract %float %115 0 240%113 = OpExtInst %float %1 Step %116 %float_0 241%117 = OpLoad %v4float %expectedB 242%118 = OpCompositeExtract %float %117 0 243%119 = OpFOrdEqual %bool %113 %118 244OpBranch %112 245%112 = OpLabel 246%120 = OpPhi %bool %false %106 %119 %111 247OpSelectionMerge %122 None 248OpBranchConditional %120 %121 %122 249%121 = OpLabel 250%124 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 251%125 = OpLoad %v4float %124 252%126 = OpVectorShuffle %v2float %125 %125 0 1 253%123 = OpExtInst %v2float %1 Step %126 %127 254%128 = OpLoad %v4float %expectedB 255%129 = OpVectorShuffle %v2float %128 %128 0 1 256%130 = OpFOrdEqual %v2bool %123 %129 257%131 = OpAll %bool %130 258OpBranch %122 259%122 = OpLabel 260%132 = OpPhi %bool %false %112 %131 %121 261OpSelectionMerge %134 None 262OpBranchConditional %132 %133 %134 263%133 = OpLabel 264%136 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 265%137 = OpLoad %v4float %136 266%138 = OpVectorShuffle %v3float %137 %137 0 1 2 267%135 = OpExtInst %v3float %1 Step %138 %139 268%140 = OpLoad %v4float %expectedB 269%141 = OpVectorShuffle %v3float %140 %140 0 1 2 270%142 = OpFOrdEqual %v3bool %135 %141 271%143 = OpAll %bool %142 272OpBranch %134 273%134 = OpLabel 274%144 = OpPhi %bool %false %122 %143 %133 275OpSelectionMerge %146 None 276OpBranchConditional %144 %145 %146 277%145 = OpLabel 278%148 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0 279%149 = OpLoad %v4float %148 280%150 = OpLoad %v4float %constGreen 281%147 = OpExtInst %v4float %1 Step %149 %150 282%151 = OpLoad %v4float %expectedB 283%152 = OpFOrdEqual %v4bool %147 %151 284%153 = OpAll %bool %152 285OpBranch %146 286%146 = OpLabel 287%154 = OpPhi %bool %false %134 %153 %145 288OpSelectionMerge %156 None 289OpBranchConditional %154 %155 %156 290%155 = OpLabel 291%157 = OpLoad %v4float %expectedB 292%158 = OpCompositeExtract %float %157 0 293%159 = OpFOrdEqual %bool %float_1 %158 294OpBranch %156 295%156 = OpLabel 296%160 = OpPhi %bool %false %146 %159 %155 297OpSelectionMerge %162 None 298OpBranchConditional %160 %161 %162 299%161 = OpLabel 300%164 = OpLoad %v4float %expectedB 301%165 = OpVectorShuffle %v2float %164 %164 0 1 302%166 = OpFOrdEqual %v2bool %163 %165 303%167 = OpAll %bool %166 304OpBranch %162 305%162 = OpLabel 306%168 = OpPhi %bool %false %156 %167 %161 307OpSelectionMerge %170 None 308OpBranchConditional %168 %169 %170 309%169 = OpLabel 310%172 = OpLoad %v4float %expectedB 311%173 = OpVectorShuffle %v3float %172 %172 0 1 2 312%174 = OpFOrdEqual %v3bool %171 %173 313%175 = OpAll %bool %174 314OpBranch %170 315%170 = OpLabel 316%176 = OpPhi %bool %false %162 %175 %169 317OpSelectionMerge %178 None 318OpBranchConditional %176 %177 %178 319%177 = OpLabel 320%179 = OpLoad %v4float %expectedB 321%180 = OpFOrdEqual %v4bool %33 %179 322%181 = OpAll %bool %180 323OpBranch %178 324%178 = OpLabel 325%182 = OpPhi %bool %false %170 %181 %177 326OpSelectionMerge %186 None 327OpBranchConditional %182 %184 %185 328%184 = OpLabel 329%187 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1 330%189 = OpLoad %v4float %187 331OpStore %183 %189 332OpBranch %186 333%185 = OpLabel 334%190 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2 335%192 = OpLoad %v4float %190 336OpStore %183 %192 337OpBranch %186 338%186 = OpLabel 339%193 = OpLoad %v4float %183 340OpReturnValue %193 341OpFunctionEnd 342