1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor 5 OpExecutionMode %_entrypoint_v OriginUpperLeft 6 OpName %sk_FragColor "sk_FragColor" 7 OpName %_UniformBuffer "_UniformBuffer" 8 OpMemberName %_UniformBuffer 0 "colorGreen" 9 OpMemberName %_UniformBuffer 1 "colorRed" 10 OpMemberName %_UniformBuffer 2 "colorBlack" 11 OpMemberName %_UniformBuffer 3 "colorWhite" 12 OpMemberName %_UniformBuffer 4 "testInputs" 13 OpName %_entrypoint_v "_entrypoint_v" 14 OpName %main "main" 15 OpName %intGreen "intGreen" 16 OpName %intRed "intRed" 17 OpDecorate %sk_FragColor RelaxedPrecision 18 OpDecorate %sk_FragColor Location 0 19 OpDecorate %sk_FragColor Index 0 20 OpMemberDecorate %_UniformBuffer 0 Offset 0 21 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 22 OpMemberDecorate %_UniformBuffer 1 Offset 16 23 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 24 OpMemberDecorate %_UniformBuffer 2 Offset 32 25 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision 26 OpMemberDecorate %_UniformBuffer 3 Offset 48 27 OpMemberDecorate %_UniformBuffer 3 RelaxedPrecision 28 OpMemberDecorate %_UniformBuffer 4 Offset 64 29 OpMemberDecorate %_UniformBuffer 4 RelaxedPrecision 30 OpDecorate %_UniformBuffer Block 31 OpDecorate %7 Binding 0 32 OpDecorate %7 DescriptorSet 0 33 OpDecorate %30 RelaxedPrecision 34 OpDecorate %32 RelaxedPrecision 35 OpDecorate %33 RelaxedPrecision 36 OpDecorate %35 RelaxedPrecision 37 OpDecorate %37 RelaxedPrecision 38 OpDecorate %39 RelaxedPrecision 39 OpDecorate %45 RelaxedPrecision 40 OpDecorate %46 RelaxedPrecision 41 OpDecorate %47 RelaxedPrecision 42 OpDecorate %49 RelaxedPrecision 43 OpDecorate %51 RelaxedPrecision 44 OpDecorate %53 RelaxedPrecision 45 OpDecorate %188 RelaxedPrecision 46 OpDecorate %189 RelaxedPrecision 47 OpDecorate %191 RelaxedPrecision 48 OpDecorate %192 RelaxedPrecision 49 OpDecorate %194 RelaxedPrecision 50 OpDecorate %195 RelaxedPrecision 51 OpDecorate %197 RelaxedPrecision 52 OpDecorate %198 RelaxedPrecision 53 OpDecorate %200 RelaxedPrecision 54 OpDecorate %201 RelaxedPrecision 55 OpDecorate %208 RelaxedPrecision 56 OpDecorate %209 RelaxedPrecision 57 OpDecorate %211 RelaxedPrecision 58 OpDecorate %212 RelaxedPrecision 59 OpDecorate %214 RelaxedPrecision 60 OpDecorate %215 RelaxedPrecision 61 OpDecorate %217 RelaxedPrecision 62 OpDecorate %218 RelaxedPrecision 63 OpDecorate %220 RelaxedPrecision 64 OpDecorate %221 RelaxedPrecision 65 OpDecorate %229 RelaxedPrecision 66 OpDecorate %230 RelaxedPrecision 67 OpDecorate %233 RelaxedPrecision 68 OpDecorate %234 RelaxedPrecision 69 OpDecorate %236 RelaxedPrecision 70 OpDecorate %237 RelaxedPrecision 71 OpDecorate %239 RelaxedPrecision 72 OpDecorate %240 RelaxedPrecision 73 OpDecorate %242 RelaxedPrecision 74 OpDecorate %243 RelaxedPrecision 75 OpDecorate %251 RelaxedPrecision 76 OpDecorate %253 RelaxedPrecision 77 OpDecorate %255 RelaxedPrecision 78 OpDecorate %257 RelaxedPrecision 79 OpDecorate %259 RelaxedPrecision 80 OpDecorate %267 RelaxedPrecision 81 OpDecorate %268 RelaxedPrecision 82 OpDecorate %270 RelaxedPrecision 83 OpDecorate %271 RelaxedPrecision 84 OpDecorate %273 RelaxedPrecision 85 OpDecorate %274 RelaxedPrecision 86 OpDecorate %276 RelaxedPrecision 87 OpDecorate %277 RelaxedPrecision 88 OpDecorate %279 RelaxedPrecision 89 OpDecorate %280 RelaxedPrecision 90 OpDecorate %287 RelaxedPrecision 91 OpDecorate %288 RelaxedPrecision 92 OpDecorate %290 RelaxedPrecision 93 OpDecorate %291 RelaxedPrecision 94 OpDecorate %293 RelaxedPrecision 95 OpDecorate %294 RelaxedPrecision 96 OpDecorate %296 RelaxedPrecision 97 OpDecorate %297 RelaxedPrecision 98 OpDecorate %299 RelaxedPrecision 99 OpDecorate %300 RelaxedPrecision 100 OpDecorate %308 RelaxedPrecision 101 OpDecorate %309 RelaxedPrecision 102 OpDecorate %311 RelaxedPrecision 103 OpDecorate %312 RelaxedPrecision 104 OpDecorate %314 RelaxedPrecision 105 OpDecorate %315 RelaxedPrecision 106 OpDecorate %317 RelaxedPrecision 107 OpDecorate %318 RelaxedPrecision 108 OpDecorate %320 RelaxedPrecision 109 OpDecorate %321 RelaxedPrecision 110 OpDecorate %329 RelaxedPrecision 111 OpDecorate %331 RelaxedPrecision 112 OpDecorate %333 RelaxedPrecision 113 OpDecorate %335 RelaxedPrecision 114 OpDecorate %337 RelaxedPrecision 115 OpDecorate %344 RelaxedPrecision 116 OpDecorate %345 RelaxedPrecision 117 OpDecorate %353 RelaxedPrecision 118 OpDecorate %354 RelaxedPrecision 119 OpDecorate %362 RelaxedPrecision 120 OpDecorate %363 RelaxedPrecision 121 OpDecorate %371 RelaxedPrecision 122 OpDecorate %378 RelaxedPrecision 123 OpDecorate %379 RelaxedPrecision 124 OpDecorate %386 RelaxedPrecision 125 OpDecorate %387 RelaxedPrecision 126 OpDecorate %395 RelaxedPrecision 127 OpDecorate %396 RelaxedPrecision 128 OpDecorate %404 RelaxedPrecision 129 OpDecorate %414 RelaxedPrecision 130 OpDecorate %416 RelaxedPrecision 131 OpDecorate %417 RelaxedPrecision 132 %float = OpTypeFloat 32 133 %v4float = OpTypeVector %float 4 134%_ptr_Output_v4float = OpTypePointer Output %v4float 135%sk_FragColor = OpVariable %_ptr_Output_v4float Output 136%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float %v4float %v4float 137%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 138 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 139 %void = OpTypeVoid 140 %12 = OpTypeFunction %void 141 %float_0 = OpConstant %float 0 142 %v2float = OpTypeVector %float 2 143 %16 = OpConstantComposite %v2float %float_0 %float_0 144%_ptr_Function_v2float = OpTypePointer Function %v2float 145 %20 = OpTypeFunction %v4float %_ptr_Function_v2float 146 %int = OpTypeInt 32 1 147 %v4int = OpTypeVector %int 4 148%_ptr_Function_v4int = OpTypePointer Function %v4int 149%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 150 %int_0 = OpConstant %int 0 151 %float_100 = OpConstant %float 100 152 %int_1 = OpConstant %int 1 153 %bool = OpTypeBool 154 %false = OpConstantFalse %bool 155 %v2int = OpTypeVector %int 2 156 %v2bool = OpTypeVector %bool 2 157 %69 = OpConstantComposite %v2bool %false %false 158 %v3int = OpTypeVector %int 3 159 %v3bool = OpTypeVector %bool 3 160 %83 = OpConstantComposite %v3bool %false %false %false 161 %v4bool = OpTypeVector %bool 4 162 %94 = OpConstantComposite %v4bool %false %false %false %false 163 %true = OpConstantTrue %bool 164 %109 = OpConstantComposite %v2bool %true %true 165 %121 = OpConstantComposite %v3bool %true %true %true 166 %131 = OpConstantComposite %v4bool %true %true %true %true 167 %int_100 = OpConstant %int 100 168 %142 = OpConstantComposite %v2int %int_0 %int_100 169 %149 = OpConstantComposite %v3int %int_0 %int_100 %int_0 170 %156 = OpConstantComposite %v4int %int_0 %int_100 %int_0 %int_100 171 %166 = OpConstantComposite %v2int %int_100 %int_0 172 %173 = OpConstantComposite %v3int %int_100 %int_0 %int_0 173 %180 = OpConstantComposite %v4int %int_100 %int_0 %int_0 %int_100 174 %v3float = OpTypeVector %float 3 175 %float_1 = OpConstant %float 1 176 %351 = OpConstantComposite %v2float %float_0 %float_1 177 %360 = OpConstantComposite %v3float %float_0 %float_1 %float_0 178 %369 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1 179 %384 = OpConstantComposite %v2float %float_1 %float_0 180 %393 = OpConstantComposite %v3float %float_1 %float_0 %float_0 181 %402 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 182%_ptr_Function_v4float = OpTypePointer Function %v4float 183%_entrypoint_v = OpFunction %void None %12 184 %13 = OpLabel 185 %17 = OpVariable %_ptr_Function_v2float Function 186 OpStore %17 %16 187 %19 = OpFunctionCall %v4float %main %17 188 OpStore %sk_FragColor %19 189 OpReturn 190 OpFunctionEnd 191 %main = OpFunction %v4float None %20 192 %21 = OpFunctionParameter %_ptr_Function_v2float 193 %22 = OpLabel 194 %intGreen = OpVariable %_ptr_Function_v4int Function 195 %intRed = OpVariable %_ptr_Function_v4int Function 196 %408 = OpVariable %_ptr_Function_v4float Function 197 %27 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 198 %30 = OpLoad %v4float %27 199 %32 = OpVectorTimesScalar %v4float %30 %float_100 200 %33 = OpCompositeExtract %float %32 0 201 %34 = OpConvertFToS %int %33 202 %35 = OpCompositeExtract %float %32 1 203 %36 = OpConvertFToS %int %35 204 %37 = OpCompositeExtract %float %32 2 205 %38 = OpConvertFToS %int %37 206 %39 = OpCompositeExtract %float %32 3 207 %40 = OpConvertFToS %int %39 208 %41 = OpCompositeConstruct %v4int %34 %36 %38 %40 209 OpStore %intGreen %41 210 %43 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 211 %45 = OpLoad %v4float %43 212 %46 = OpVectorTimesScalar %v4float %45 %float_100 213 %47 = OpCompositeExtract %float %46 0 214 %48 = OpConvertFToS %int %47 215 %49 = OpCompositeExtract %float %46 1 216 %50 = OpConvertFToS %int %49 217 %51 = OpCompositeExtract %float %46 2 218 %52 = OpConvertFToS %int %51 219 %53 = OpCompositeExtract %float %46 3 220 %54 = OpConvertFToS %int %53 221 %55 = OpCompositeConstruct %v4int %48 %50 %52 %54 222 OpStore %intRed %55 223 %59 = OpCompositeExtract %int %41 0 224 %60 = OpCompositeExtract %int %55 0 225 %58 = OpSelect %int %false %60 %59 226 %61 = OpIEqual %bool %58 %59 227 OpSelectionMerge %63 None 228 OpBranchConditional %61 %62 %63 229 %62 = OpLabel 230 %65 = OpVectorShuffle %v2int %41 %41 0 1 231 %67 = OpVectorShuffle %v2int %55 %55 0 1 232 %70 = OpVectorShuffle %v2int %41 %41 0 1 233 %71 = OpVectorShuffle %v2int %55 %55 0 1 234 %64 = OpSelect %v2int %69 %71 %70 235 %72 = OpVectorShuffle %v2int %41 %41 0 1 236 %73 = OpIEqual %v2bool %64 %72 237 %74 = OpAll %bool %73 238 OpBranch %63 239 %63 = OpLabel 240 %75 = OpPhi %bool %false %22 %74 %62 241 OpSelectionMerge %77 None 242 OpBranchConditional %75 %76 %77 243 %76 = OpLabel 244 %79 = OpVectorShuffle %v3int %41 %41 0 1 2 245 %81 = OpVectorShuffle %v3int %55 %55 0 1 2 246 %84 = OpVectorShuffle %v3int %41 %41 0 1 2 247 %85 = OpVectorShuffle %v3int %55 %55 0 1 2 248 %78 = OpSelect %v3int %83 %85 %84 249 %86 = OpVectorShuffle %v3int %41 %41 0 1 2 250 %87 = OpIEqual %v3bool %78 %86 251 %88 = OpAll %bool %87 252 OpBranch %77 253 %77 = OpLabel 254 %89 = OpPhi %bool %false %63 %88 %76 255 OpSelectionMerge %91 None 256 OpBranchConditional %89 %90 %91 257 %90 = OpLabel 258 %92 = OpSelect %v4int %94 %55 %41 259 %95 = OpIEqual %v4bool %92 %41 260 %96 = OpAll %bool %95 261 OpBranch %91 262 %91 = OpLabel 263 %97 = OpPhi %bool %false %77 %96 %90 264 OpSelectionMerge %99 None 265 OpBranchConditional %97 %98 %99 266 %98 = OpLabel 267 %100 = OpSelect %int %true %60 %59 268 %102 = OpIEqual %bool %100 %60 269 OpBranch %99 270 %99 = OpLabel 271 %103 = OpPhi %bool %false %91 %102 %98 272 OpSelectionMerge %105 None 273 OpBranchConditional %103 %104 %105 274 %104 = OpLabel 275 %107 = OpVectorShuffle %v2int %41 %41 0 1 276 %108 = OpVectorShuffle %v2int %55 %55 0 1 277 %110 = OpVectorShuffle %v2int %41 %41 0 1 278 %111 = OpVectorShuffle %v2int %55 %55 0 1 279 %106 = OpSelect %v2int %109 %111 %110 280 %112 = OpVectorShuffle %v2int %55 %55 0 1 281 %113 = OpIEqual %v2bool %106 %112 282 %114 = OpAll %bool %113 283 OpBranch %105 284 %105 = OpLabel 285 %115 = OpPhi %bool %false %99 %114 %104 286 OpSelectionMerge %117 None 287 OpBranchConditional %115 %116 %117 288 %116 = OpLabel 289 %119 = OpVectorShuffle %v3int %41 %41 0 1 2 290 %120 = OpVectorShuffle %v3int %55 %55 0 1 2 291 %122 = OpVectorShuffle %v3int %41 %41 0 1 2 292 %123 = OpVectorShuffle %v3int %55 %55 0 1 2 293 %118 = OpSelect %v3int %121 %123 %122 294 %124 = OpVectorShuffle %v3int %55 %55 0 1 2 295 %125 = OpIEqual %v3bool %118 %124 296 %126 = OpAll %bool %125 297 OpBranch %117 298 %117 = OpLabel 299 %127 = OpPhi %bool %false %105 %126 %116 300 OpSelectionMerge %129 None 301 OpBranchConditional %127 %128 %129 302 %128 = OpLabel 303 %130 = OpSelect %v4int %131 %55 %41 304 %132 = OpIEqual %v4bool %130 %55 305 %133 = OpAll %bool %132 306 OpBranch %129 307 %129 = OpLabel 308 %134 = OpPhi %bool %false %117 %133 %128 309 OpSelectionMerge %136 None 310 OpBranchConditional %134 %135 %136 311 %135 = OpLabel 312 %137 = OpIEqual %bool %int_0 %59 313 OpBranch %136 314 %136 = OpLabel 315 %138 = OpPhi %bool %false %129 %137 %135 316 OpSelectionMerge %140 None 317 OpBranchConditional %138 %139 %140 318 %139 = OpLabel 319 %143 = OpVectorShuffle %v2int %41 %41 0 1 320 %144 = OpIEqual %v2bool %142 %143 321 %145 = OpAll %bool %144 322 OpBranch %140 323 %140 = OpLabel 324 %146 = OpPhi %bool %false %136 %145 %139 325 OpSelectionMerge %148 None 326 OpBranchConditional %146 %147 %148 327 %147 = OpLabel 328 %150 = OpVectorShuffle %v3int %41 %41 0 1 2 329 %151 = OpIEqual %v3bool %149 %150 330 %152 = OpAll %bool %151 331 OpBranch %148 332 %148 = OpLabel 333 %153 = OpPhi %bool %false %140 %152 %147 334 OpSelectionMerge %155 None 335 OpBranchConditional %153 %154 %155 336 %154 = OpLabel 337 %157 = OpIEqual %v4bool %156 %41 338 %158 = OpAll %bool %157 339 OpBranch %155 340 %155 = OpLabel 341 %159 = OpPhi %bool %false %148 %158 %154 342 OpSelectionMerge %161 None 343 OpBranchConditional %159 %160 %161 344 %160 = OpLabel 345 %162 = OpIEqual %bool %int_100 %60 346 OpBranch %161 347 %161 = OpLabel 348 %163 = OpPhi %bool %false %155 %162 %160 349 OpSelectionMerge %165 None 350 OpBranchConditional %163 %164 %165 351 %164 = OpLabel 352 %167 = OpVectorShuffle %v2int %55 %55 0 1 353 %168 = OpIEqual %v2bool %166 %167 354 %169 = OpAll %bool %168 355 OpBranch %165 356 %165 = OpLabel 357 %170 = OpPhi %bool %false %161 %169 %164 358 OpSelectionMerge %172 None 359 OpBranchConditional %170 %171 %172 360 %171 = OpLabel 361 %174 = OpVectorShuffle %v3int %55 %55 0 1 2 362 %175 = OpIEqual %v3bool %173 %174 363 %176 = OpAll %bool %175 364 OpBranch %172 365 %172 = OpLabel 366 %177 = OpPhi %bool %false %165 %176 %171 367 OpSelectionMerge %179 None 368 OpBranchConditional %177 %178 %179 369 %178 = OpLabel 370 %181 = OpIEqual %v4bool %180 %55 371 %182 = OpAll %bool %181 372 OpBranch %179 373 %179 = OpLabel 374 %183 = OpPhi %bool %false %172 %182 %178 375 OpSelectionMerge %185 None 376 OpBranchConditional %183 %184 %185 377 %184 = OpLabel 378 %187 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 379 %188 = OpLoad %v4float %187 380 %189 = OpCompositeExtract %float %188 0 381 %190 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 382 %191 = OpLoad %v4float %190 383 %192 = OpCompositeExtract %float %191 0 384 %193 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 385 %194 = OpLoad %v4float %193 386 %195 = OpCompositeExtract %float %194 0 387 %196 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 388 %197 = OpLoad %v4float %196 389 %198 = OpCompositeExtract %float %197 0 390 %186 = OpSelect %float %false %198 %195 391 %199 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 392 %200 = OpLoad %v4float %199 393 %201 = OpCompositeExtract %float %200 0 394 %202 = OpFOrdEqual %bool %186 %201 395 OpBranch %185 396 %185 = OpLabel 397 %203 = OpPhi %bool %false %179 %202 %184 398 OpSelectionMerge %205 None 399 OpBranchConditional %203 %204 %205 400 %204 = OpLabel 401 %207 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 402 %208 = OpLoad %v4float %207 403 %209 = OpVectorShuffle %v2float %208 %208 0 1 404 %210 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 405 %211 = OpLoad %v4float %210 406 %212 = OpVectorShuffle %v2float %211 %211 0 1 407 %213 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 408 %214 = OpLoad %v4float %213 409 %215 = OpVectorShuffle %v2float %214 %214 0 1 410 %216 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 411 %217 = OpLoad %v4float %216 412 %218 = OpVectorShuffle %v2float %217 %217 0 1 413 %206 = OpSelect %v2float %69 %218 %215 414 %219 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 415 %220 = OpLoad %v4float %219 416 %221 = OpVectorShuffle %v2float %220 %220 0 1 417 %222 = OpFOrdEqual %v2bool %206 %221 418 %223 = OpAll %bool %222 419 OpBranch %205 420 %205 = OpLabel 421 %224 = OpPhi %bool %false %185 %223 %204 422 OpSelectionMerge %226 None 423 OpBranchConditional %224 %225 %226 424 %225 = OpLabel 425 %228 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 426 %229 = OpLoad %v4float %228 427 %230 = OpVectorShuffle %v3float %229 %229 0 1 2 428 %232 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 429 %233 = OpLoad %v4float %232 430 %234 = OpVectorShuffle %v3float %233 %233 0 1 2 431 %235 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 432 %236 = OpLoad %v4float %235 433 %237 = OpVectorShuffle %v3float %236 %236 0 1 2 434 %238 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 435 %239 = OpLoad %v4float %238 436 %240 = OpVectorShuffle %v3float %239 %239 0 1 2 437 %227 = OpSelect %v3float %83 %240 %237 438 %241 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 439 %242 = OpLoad %v4float %241 440 %243 = OpVectorShuffle %v3float %242 %242 0 1 2 441 %244 = OpFOrdEqual %v3bool %227 %243 442 %245 = OpAll %bool %244 443 OpBranch %226 444 %226 = OpLabel 445 %246 = OpPhi %bool %false %205 %245 %225 446 OpSelectionMerge %248 None 447 OpBranchConditional %246 %247 %248 448 %247 = OpLabel 449 %250 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 450 %251 = OpLoad %v4float %250 451 %252 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 452 %253 = OpLoad %v4float %252 453 %254 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 454 %255 = OpLoad %v4float %254 455 %256 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 456 %257 = OpLoad %v4float %256 457 %249 = OpSelect %v4float %94 %257 %255 458 %258 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 459 %259 = OpLoad %v4float %258 460 %260 = OpFOrdEqual %v4bool %249 %259 461 %261 = OpAll %bool %260 462 OpBranch %248 463 %248 = OpLabel 464 %262 = OpPhi %bool %false %226 %261 %247 465 OpSelectionMerge %264 None 466 OpBranchConditional %262 %263 %264 467 %263 = OpLabel 468 %266 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 469 %267 = OpLoad %v4float %266 470 %268 = OpCompositeExtract %float %267 0 471 %269 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 472 %270 = OpLoad %v4float %269 473 %271 = OpCompositeExtract %float %270 0 474 %272 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 475 %273 = OpLoad %v4float %272 476 %274 = OpCompositeExtract %float %273 0 477 %275 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 478 %276 = OpLoad %v4float %275 479 %277 = OpCompositeExtract %float %276 0 480 %265 = OpSelect %float %true %277 %274 481 %278 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 482 %279 = OpLoad %v4float %278 483 %280 = OpCompositeExtract %float %279 0 484 %281 = OpFOrdEqual %bool %265 %280 485 OpBranch %264 486 %264 = OpLabel 487 %282 = OpPhi %bool %false %248 %281 %263 488 OpSelectionMerge %284 None 489 OpBranchConditional %282 %283 %284 490 %283 = OpLabel 491 %286 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 492 %287 = OpLoad %v4float %286 493 %288 = OpVectorShuffle %v2float %287 %287 0 1 494 %289 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 495 %290 = OpLoad %v4float %289 496 %291 = OpVectorShuffle %v2float %290 %290 0 1 497 %292 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 498 %293 = OpLoad %v4float %292 499 %294 = OpVectorShuffle %v2float %293 %293 0 1 500 %295 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 501 %296 = OpLoad %v4float %295 502 %297 = OpVectorShuffle %v2float %296 %296 0 1 503 %285 = OpSelect %v2float %109 %297 %294 504 %298 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 505 %299 = OpLoad %v4float %298 506 %300 = OpVectorShuffle %v2float %299 %299 0 1 507 %301 = OpFOrdEqual %v2bool %285 %300 508 %302 = OpAll %bool %301 509 OpBranch %284 510 %284 = OpLabel 511 %303 = OpPhi %bool %false %264 %302 %283 512 OpSelectionMerge %305 None 513 OpBranchConditional %303 %304 %305 514 %304 = OpLabel 515 %307 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 516 %308 = OpLoad %v4float %307 517 %309 = OpVectorShuffle %v3float %308 %308 0 1 2 518 %310 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 519 %311 = OpLoad %v4float %310 520 %312 = OpVectorShuffle %v3float %311 %311 0 1 2 521 %313 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 522 %314 = OpLoad %v4float %313 523 %315 = OpVectorShuffle %v3float %314 %314 0 1 2 524 %316 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 525 %317 = OpLoad %v4float %316 526 %318 = OpVectorShuffle %v3float %317 %317 0 1 2 527 %306 = OpSelect %v3float %121 %318 %315 528 %319 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 529 %320 = OpLoad %v4float %319 530 %321 = OpVectorShuffle %v3float %320 %320 0 1 2 531 %322 = OpFOrdEqual %v3bool %306 %321 532 %323 = OpAll %bool %322 533 OpBranch %305 534 %305 = OpLabel 535 %324 = OpPhi %bool %false %284 %323 %304 536 OpSelectionMerge %326 None 537 OpBranchConditional %324 %325 %326 538 %325 = OpLabel 539 %328 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 540 %329 = OpLoad %v4float %328 541 %330 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 542 %331 = OpLoad %v4float %330 543 %332 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 544 %333 = OpLoad %v4float %332 545 %334 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 546 %335 = OpLoad %v4float %334 547 %327 = OpSelect %v4float %131 %335 %333 548 %336 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 549 %337 = OpLoad %v4float %336 550 %338 = OpFOrdEqual %v4bool %327 %337 551 %339 = OpAll %bool %338 552 OpBranch %326 553 %326 = OpLabel 554 %340 = OpPhi %bool %false %305 %339 %325 555 OpSelectionMerge %342 None 556 OpBranchConditional %340 %341 %342 557 %341 = OpLabel 558 %343 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 559 %344 = OpLoad %v4float %343 560 %345 = OpCompositeExtract %float %344 0 561 %346 = OpFOrdEqual %bool %float_0 %345 562 OpBranch %342 563 %342 = OpLabel 564 %347 = OpPhi %bool %false %326 %346 %341 565 OpSelectionMerge %349 None 566 OpBranchConditional %347 %348 %349 567 %348 = OpLabel 568 %352 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 569 %353 = OpLoad %v4float %352 570 %354 = OpVectorShuffle %v2float %353 %353 0 1 571 %355 = OpFOrdEqual %v2bool %351 %354 572 %356 = OpAll %bool %355 573 OpBranch %349 574 %349 = OpLabel 575 %357 = OpPhi %bool %false %342 %356 %348 576 OpSelectionMerge %359 None 577 OpBranchConditional %357 %358 %359 578 %358 = OpLabel 579 %361 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 580 %362 = OpLoad %v4float %361 581 %363 = OpVectorShuffle %v3float %362 %362 0 1 2 582 %364 = OpFOrdEqual %v3bool %360 %363 583 %365 = OpAll %bool %364 584 OpBranch %359 585 %359 = OpLabel 586 %366 = OpPhi %bool %false %349 %365 %358 587 OpSelectionMerge %368 None 588 OpBranchConditional %366 %367 %368 589 %367 = OpLabel 590 %370 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 591 %371 = OpLoad %v4float %370 592 %372 = OpFOrdEqual %v4bool %369 %371 593 %373 = OpAll %bool %372 594 OpBranch %368 595 %368 = OpLabel 596 %374 = OpPhi %bool %false %359 %373 %367 597 OpSelectionMerge %376 None 598 OpBranchConditional %374 %375 %376 599 %375 = OpLabel 600 %377 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 601 %378 = OpLoad %v4float %377 602 %379 = OpCompositeExtract %float %378 0 603 %380 = OpFOrdEqual %bool %float_1 %379 604 OpBranch %376 605 %376 = OpLabel 606 %381 = OpPhi %bool %false %368 %380 %375 607 OpSelectionMerge %383 None 608 OpBranchConditional %381 %382 %383 609 %382 = OpLabel 610 %385 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 611 %386 = OpLoad %v4float %385 612 %387 = OpVectorShuffle %v2float %386 %386 0 1 613 %388 = OpFOrdEqual %v2bool %384 %387 614 %389 = OpAll %bool %388 615 OpBranch %383 616 %383 = OpLabel 617 %390 = OpPhi %bool %false %376 %389 %382 618 OpSelectionMerge %392 None 619 OpBranchConditional %390 %391 %392 620 %391 = OpLabel 621 %394 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 622 %395 = OpLoad %v4float %394 623 %396 = OpVectorShuffle %v3float %395 %395 0 1 2 624 %397 = OpFOrdEqual %v3bool %393 %396 625 %398 = OpAll %bool %397 626 OpBranch %392 627 %392 = OpLabel 628 %399 = OpPhi %bool %false %383 %398 %391 629 OpSelectionMerge %401 None 630 OpBranchConditional %399 %400 %401 631 %400 = OpLabel 632 %403 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 633 %404 = OpLoad %v4float %403 634 %405 = OpFOrdEqual %v4bool %402 %404 635 %406 = OpAll %bool %405 636 OpBranch %401 637 %401 = OpLabel 638 %407 = OpPhi %bool %false %392 %406 %400 639 OpSelectionMerge %412 None 640 OpBranchConditional %407 %410 %411 641 %410 = OpLabel 642 %413 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 643 %414 = OpLoad %v4float %413 644 OpStore %408 %414 645 OpBranch %412 646 %411 = OpLabel 647 %415 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 648 %416 = OpLoad %v4float %415 649 OpStore %408 %416 650 OpBranch %412 651 %412 = OpLabel 652 %417 = OpLoad %v4float %408 653 OpReturnValue %417 654 OpFunctionEnd 655