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 "testMatrix2x2" 11 OpName %_entrypoint_v "_entrypoint_v" 12 OpName %main "main" 13 OpName %ok "ok" 14 OpName %i "i" 15 OpName %f "f" 16 OpName %f2 "f2" 17 OpName %i4 "i4" 18 OpName %m3x3 "m3x3" 19 OpName %iv "iv" 20 OpDecorate %sk_FragColor RelaxedPrecision 21 OpDecorate %sk_FragColor Location 0 22 OpDecorate %sk_FragColor Index 0 23 OpMemberDecorate %_UniformBuffer 0 Offset 0 24 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision 25 OpMemberDecorate %_UniformBuffer 1 Offset 16 26 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision 27 OpMemberDecorate %_UniformBuffer 2 Offset 32 28 OpMemberDecorate %_UniformBuffer 2 ColMajor 29 OpMemberDecorate %_UniformBuffer 2 MatrixStride 16 30 OpDecorate %_UniformBuffer Block 31 OpDecorate %7 Binding 0 32 OpDecorate %7 DescriptorSet 0 33 OpDecorate %92 RelaxedPrecision 34 OpDecorate %116 RelaxedPrecision 35 OpDecorate %294 RelaxedPrecision 36 OpDecorate %295 RelaxedPrecision 37 OpDecorate %302 RelaxedPrecision 38 OpDecorate %303 RelaxedPrecision 39 OpDecorate %304 RelaxedPrecision 40 OpDecorate %311 RelaxedPrecision 41 OpDecorate %312 RelaxedPrecision 42 OpDecorate %366 RelaxedPrecision 43 OpDecorate %368 RelaxedPrecision 44 OpDecorate %369 RelaxedPrecision 45 %float = OpTypeFloat 32 46 %v4float = OpTypeVector %float 4 47%_ptr_Output_v4float = OpTypePointer Output %v4float 48%sk_FragColor = OpVariable %_ptr_Output_v4float Output 49 %v2float = OpTypeVector %float 2 50%mat2v2float = OpTypeMatrix %v2float 2 51%_UniformBuffer = OpTypeStruct %v4float %v4float %mat2v2float 52%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer 53 %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform 54 %void = OpTypeVoid 55 %14 = OpTypeFunction %void 56 %float_0 = OpConstant %float 0 57 %17 = OpConstantComposite %v2float %float_0 %float_0 58%_ptr_Function_v2float = OpTypePointer Function %v2float 59 %21 = OpTypeFunction %v4float %_ptr_Function_v2float 60 %bool = OpTypeBool 61%_ptr_Function_bool = OpTypePointer Function %bool 62 %true = OpConstantTrue %bool 63 %int = OpTypeInt 32 1 64%_ptr_Function_int = OpTypePointer Function %int 65 %int_5 = OpConstant %int 5 66 %int_1 = OpConstant %int 1 67 %false = OpConstantFalse %bool 68 %int_6 = OpConstant %int 6 69 %int_7 = OpConstant %int 7 70%_ptr_Function_float = OpTypePointer Function %float 71 %float_0_5 = OpConstant %float 0.5 72 %float_1 = OpConstant %float 1 73 %float_1_5 = OpConstant %float 1.5 74 %float_2_5 = OpConstant %float 2.5 75 %87 = OpConstantComposite %v2float %float_0_5 %float_0_5 76 %int_0 = OpConstant %int 0 77 %123 = OpConstantComposite %v2float %float_1 %float_1 78 %128 = OpConstantComposite %v2float %float_1_5 %float_1_5 79 %v2bool = OpTypeVector %bool 2 80 %136 = OpConstantComposite %v2float %float_2_5 %float_2_5 81 %v4int = OpTypeVector %int 4 82%_ptr_Function_v4int = OpTypePointer Function %v4int 83 %int_8 = OpConstant %int 8 84 %int_9 = OpConstant %int 9 85 %int_10 = OpConstant %int 10 86 %160 = OpConstantComposite %v4int %int_7 %int_8 %int_9 %int_10 87 %161 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1 88 %int_11 = OpConstant %int 11 89 %166 = OpConstantComposite %v4int %int_8 %int_9 %int_10 %int_11 90 %v4bool = OpTypeVector %bool 4 91 %int_12 = OpConstant %int 12 92 %175 = OpConstantComposite %v4int %int_9 %int_10 %int_11 %int_12 93 %v3float = OpTypeVector %float 3 94%mat3v3float = OpTypeMatrix %v3float 3 95%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float 96 %float_2 = OpConstant %float 2 97 %float_3 = OpConstant %float 3 98 %float_4 = OpConstant %float 4 99 %float_5 = OpConstant %float 5 100 %float_6 = OpConstant %float 6 101 %float_7 = OpConstant %float 7 102 %float_8 = OpConstant %float 8 103 %float_9 = OpConstant %float 9 104 %205 = OpConstantComposite %v3float %float_1 %float_2 %float_3 105 %206 = OpConstantComposite %v3float %float_4 %float_5 %float_6 106 %207 = OpConstantComposite %v3float %float_7 %float_8 %float_9 107 %208 = OpConstantComposite %mat3v3float %205 %206 %207 108 %209 = OpConstantComposite %v3float %float_1 %float_1 %float_1 109 %210 = OpConstantComposite %mat3v3float %209 %209 %209 110 %float_10 = OpConstant %float 10 111 %218 = OpConstantComposite %v3float %float_2 %float_3 %float_4 112 %219 = OpConstantComposite %v3float %float_5 %float_6 %float_7 113 %220 = OpConstantComposite %v3float %float_8 %float_9 %float_10 114 %221 = OpConstantComposite %mat3v3float %218 %219 %220 115 %v3bool = OpTypeVector %bool 3 116 %float_11 = OpConstant %float 11 117 %239 = OpConstantComposite %v3float %float_3 %float_4 %float_5 118 %240 = OpConstantComposite %v3float %float_6 %float_7 %float_8 119 %241 = OpConstantComposite %v3float %float_9 %float_10 %float_11 120 %242 = OpConstantComposite %mat3v3float %239 %240 %241 121%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float 122 %float_n1 = OpConstant %float -1 123 %309 = OpConstantComposite %v4float %float_0 %float_n1 %float_0 %float_n1 124 %float_n2 = OpConstant %float -2 125 %float_n3 = OpConstant %float -3 126 %float_n4 = OpConstant %float -4 127 %321 = OpConstantComposite %v2float %float_n1 %float_n2 128 %322 = OpConstantComposite %v2float %float_n3 %float_n4 129 %323 = OpConstantComposite %mat2v2float %321 %322 130%_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float 131 %int_2 = OpConstant %int 2 132 %v2int = OpTypeVector %int 2 133%_ptr_Function_v2int = OpTypePointer Function %v2int 134 %int_n5 = OpConstant %int -5 135 %356 = OpConstantComposite %v2int %int_n5 %int_5 136%_ptr_Function_v4float = OpTypePointer Function %v4float 137%_entrypoint_v = OpFunction %void None %14 138 %15 = OpLabel 139 %18 = OpVariable %_ptr_Function_v2float Function 140 OpStore %18 %17 141 %20 = OpFunctionCall %v4float %main %18 142 OpStore %sk_FragColor %20 143 OpReturn 144 OpFunctionEnd 145 %main = OpFunction %v4float None %21 146 %22 = OpFunctionParameter %_ptr_Function_v2float 147 %23 = OpLabel 148 %ok = OpVariable %_ptr_Function_bool Function 149 %i = OpVariable %_ptr_Function_int Function 150 %f = OpVariable %_ptr_Function_float Function 151 %f2 = OpVariable %_ptr_Function_v2float Function 152 %i4 = OpVariable %_ptr_Function_v4int Function 153 %m3x3 = OpVariable %_ptr_Function_mat3v3float Function 154 %iv = OpVariable %_ptr_Function_v2int Function 155 %360 = OpVariable %_ptr_Function_v4float Function 156 OpStore %ok %true 157 OpStore %i %int_5 158 %33 = OpIAdd %int %int_5 %int_1 159 OpStore %i %33 160 OpSelectionMerge %36 None 161 OpBranchConditional %true %35 %36 162 %35 = OpLabel 163 %38 = OpIEqual %bool %33 %int_6 164 OpBranch %36 165 %36 = OpLabel 166 %39 = OpPhi %bool %false %23 %38 %35 167 OpStore %ok %39 168 OpSelectionMerge %41 None 169 OpBranchConditional %39 %40 %41 170 %40 = OpLabel 171 %42 = OpIAdd %int %33 %int_1 172 OpStore %i %42 173 %44 = OpIEqual %bool %42 %int_7 174 OpBranch %41 175 %41 = OpLabel 176 %45 = OpPhi %bool %false %36 %44 %40 177 OpStore %ok %45 178 OpSelectionMerge %47 None 179 OpBranchConditional %45 %46 %47 180 %46 = OpLabel 181 %48 = OpLoad %int %i 182 %49 = OpISub %int %48 %int_1 183 OpStore %i %49 184 %50 = OpIEqual %bool %49 %int_6 185 OpBranch %47 186 %47 = OpLabel 187 %51 = OpPhi %bool %false %41 %50 %46 188 OpStore %ok %51 189 %52 = OpLoad %int %i 190 %53 = OpISub %int %52 %int_1 191 OpStore %i %53 192 OpSelectionMerge %55 None 193 OpBranchConditional %51 %54 %55 194 %54 = OpLabel 195 %56 = OpIEqual %bool %53 %int_5 196 OpBranch %55 197 %55 = OpLabel 198 %57 = OpPhi %bool %false %47 %56 %54 199 OpStore %ok %57 200 OpStore %f %float_0_5 201 %62 = OpFAdd %float %float_0_5 %float_1 202 OpStore %f %62 203 OpSelectionMerge %64 None 204 OpBranchConditional %57 %63 %64 205 %63 = OpLabel 206 %66 = OpFOrdEqual %bool %62 %float_1_5 207 OpBranch %64 208 %64 = OpLabel 209 %67 = OpPhi %bool %false %55 %66 %63 210 OpStore %ok %67 211 OpSelectionMerge %69 None 212 OpBranchConditional %67 %68 %69 213 %68 = OpLabel 214 %70 = OpFAdd %float %62 %float_1 215 OpStore %f %70 216 %72 = OpFOrdEqual %bool %70 %float_2_5 217 OpBranch %69 218 %69 = OpLabel 219 %73 = OpPhi %bool %false %64 %72 %68 220 OpStore %ok %73 221 OpSelectionMerge %75 None 222 OpBranchConditional %73 %74 %75 223 %74 = OpLabel 224 %76 = OpLoad %float %f 225 %77 = OpFSub %float %76 %float_1 226 OpStore %f %77 227 %78 = OpFOrdEqual %bool %77 %float_1_5 228 OpBranch %75 229 %75 = OpLabel 230 %79 = OpPhi %bool %false %69 %78 %74 231 OpStore %ok %79 232 %80 = OpLoad %float %f 233 %81 = OpFSub %float %80 %float_1 234 OpStore %f %81 235 OpSelectionMerge %83 None 236 OpBranchConditional %79 %82 %83 237 %82 = OpLabel 238 %84 = OpFOrdEqual %bool %81 %float_0_5 239 OpBranch %83 240 %83 = OpLabel 241 %85 = OpPhi %bool %false %75 %84 %82 242 OpStore %ok %85 243 OpStore %f2 %87 244 %88 = OpAccessChain %_ptr_Function_float %f2 %int_0 245 %90 = OpLoad %float %88 246 %91 = OpFAdd %float %90 %float_1 247 OpStore %88 %91 248 %92 = OpLoad %bool %ok 249 OpSelectionMerge %94 None 250 OpBranchConditional %92 %93 %94 251 %93 = OpLabel 252 %95 = OpLoad %v2float %f2 253 %96 = OpCompositeExtract %float %95 0 254 %97 = OpFOrdEqual %bool %96 %float_1_5 255 OpBranch %94 256 %94 = OpLabel 257 %98 = OpPhi %bool %false %83 %97 %93 258 OpStore %ok %98 259 OpSelectionMerge %100 None 260 OpBranchConditional %98 %99 %100 261 %99 = OpLabel 262 %101 = OpAccessChain %_ptr_Function_float %f2 %int_0 263 %102 = OpLoad %float %101 264 %103 = OpFAdd %float %102 %float_1 265 OpStore %101 %103 266 %104 = OpFOrdEqual %bool %103 %float_2_5 267 OpBranch %100 268 %100 = OpLabel 269 %105 = OpPhi %bool %false %94 %104 %99 270 OpStore %ok %105 271 OpSelectionMerge %107 None 272 OpBranchConditional %105 %106 %107 273 %106 = OpLabel 274 %108 = OpAccessChain %_ptr_Function_float %f2 %int_0 275 %109 = OpLoad %float %108 276 %110 = OpFSub %float %109 %float_1 277 OpStore %108 %110 278 %111 = OpFOrdEqual %bool %110 %float_1_5 279 OpBranch %107 280 %107 = OpLabel 281 %112 = OpPhi %bool %false %100 %111 %106 282 OpStore %ok %112 283 %113 = OpAccessChain %_ptr_Function_float %f2 %int_0 284 %114 = OpLoad %float %113 285 %115 = OpFSub %float %114 %float_1 286 OpStore %113 %115 287 %116 = OpLoad %bool %ok 288 OpSelectionMerge %118 None 289 OpBranchConditional %116 %117 %118 290 %117 = OpLabel 291 %119 = OpLoad %v2float %f2 292 %120 = OpCompositeExtract %float %119 0 293 %121 = OpFOrdEqual %bool %120 %float_0_5 294 OpBranch %118 295 %118 = OpLabel 296 %122 = OpPhi %bool %false %107 %121 %117 297 OpStore %ok %122 298 %124 = OpLoad %v2float %f2 299 %125 = OpFAdd %v2float %124 %123 300 OpStore %f2 %125 301 OpSelectionMerge %127 None 302 OpBranchConditional %122 %126 %127 303 %126 = OpLabel 304 %129 = OpFOrdEqual %v2bool %125 %128 305 %131 = OpAll %bool %129 306 OpBranch %127 307 %127 = OpLabel 308 %132 = OpPhi %bool %false %118 %131 %126 309 OpStore %ok %132 310 OpSelectionMerge %134 None 311 OpBranchConditional %132 %133 %134 312 %133 = OpLabel 313 %135 = OpFAdd %v2float %125 %123 314 OpStore %f2 %135 315 %137 = OpFOrdEqual %v2bool %135 %136 316 %138 = OpAll %bool %137 317 OpBranch %134 318 %134 = OpLabel 319 %139 = OpPhi %bool %false %127 %138 %133 320 OpStore %ok %139 321 OpSelectionMerge %141 None 322 OpBranchConditional %139 %140 %141 323 %140 = OpLabel 324 %142 = OpLoad %v2float %f2 325 %143 = OpFSub %v2float %142 %123 326 OpStore %f2 %143 327 %144 = OpFOrdEqual %v2bool %143 %128 328 %145 = OpAll %bool %144 329 OpBranch %141 330 %141 = OpLabel 331 %146 = OpPhi %bool %false %134 %145 %140 332 OpStore %ok %146 333 %147 = OpLoad %v2float %f2 334 %148 = OpFSub %v2float %147 %123 335 OpStore %f2 %148 336 OpSelectionMerge %150 None 337 OpBranchConditional %146 %149 %150 338 %149 = OpLabel 339 %151 = OpFOrdEqual %v2bool %148 %87 340 %152 = OpAll %bool %151 341 OpBranch %150 342 %150 = OpLabel 343 %153 = OpPhi %bool %false %141 %152 %149 344 OpStore %ok %153 345 OpStore %i4 %160 346 %162 = OpIAdd %v4int %160 %161 347 OpStore %i4 %162 348 OpSelectionMerge %164 None 349 OpBranchConditional %153 %163 %164 350 %163 = OpLabel 351 %167 = OpIEqual %v4bool %162 %166 352 %169 = OpAll %bool %167 353 OpBranch %164 354 %164 = OpLabel 355 %170 = OpPhi %bool %false %150 %169 %163 356 OpStore %ok %170 357 OpSelectionMerge %172 None 358 OpBranchConditional %170 %171 %172 359 %171 = OpLabel 360 %173 = OpIAdd %v4int %162 %161 361 OpStore %i4 %173 362 %176 = OpIEqual %v4bool %173 %175 363 %177 = OpAll %bool %176 364 OpBranch %172 365 %172 = OpLabel 366 %178 = OpPhi %bool %false %164 %177 %171 367 OpStore %ok %178 368 OpSelectionMerge %180 None 369 OpBranchConditional %178 %179 %180 370 %179 = OpLabel 371 %181 = OpLoad %v4int %i4 372 %182 = OpISub %v4int %181 %161 373 OpStore %i4 %182 374 %183 = OpIEqual %v4bool %182 %166 375 %184 = OpAll %bool %183 376 OpBranch %180 377 %180 = OpLabel 378 %185 = OpPhi %bool %false %172 %184 %179 379 OpStore %ok %185 380 %186 = OpLoad %v4int %i4 381 %187 = OpISub %v4int %186 %161 382 OpStore %i4 %187 383 OpSelectionMerge %189 None 384 OpBranchConditional %185 %188 %189 385 %188 = OpLabel 386 %190 = OpIEqual %v4bool %187 %160 387 %191 = OpAll %bool %190 388 OpBranch %189 389 %189 = OpLabel 390 %192 = OpPhi %bool %false %180 %191 %188 391 OpStore %ok %192 392 OpStore %m3x3 %208 393 %211 = OpFAdd %v3float %205 %209 394 %212 = OpFAdd %v3float %206 %209 395 %213 = OpFAdd %v3float %207 %209 396 %214 = OpCompositeConstruct %mat3v3float %211 %212 %213 397 OpStore %m3x3 %214 398 OpSelectionMerge %216 None 399 OpBranchConditional %192 %215 %216 400 %215 = OpLabel 401 %223 = OpFOrdEqual %v3bool %211 %218 402 %224 = OpAll %bool %223 403 %225 = OpFOrdEqual %v3bool %212 %219 404 %226 = OpAll %bool %225 405 %227 = OpLogicalAnd %bool %224 %226 406 %228 = OpFOrdEqual %v3bool %213 %220 407 %229 = OpAll %bool %228 408 %230 = OpLogicalAnd %bool %227 %229 409 OpBranch %216 410 %216 = OpLabel 411 %231 = OpPhi %bool %false %189 %230 %215 412 OpStore %ok %231 413 OpSelectionMerge %233 None 414 OpBranchConditional %231 %232 %233 415 %232 = OpLabel 416 %234 = OpFAdd %v3float %211 %209 417 %235 = OpFAdd %v3float %212 %209 418 %236 = OpFAdd %v3float %213 %209 419 %237 = OpCompositeConstruct %mat3v3float %234 %235 %236 420 OpStore %m3x3 %237 421 %243 = OpFOrdEqual %v3bool %234 %239 422 %244 = OpAll %bool %243 423 %245 = OpFOrdEqual %v3bool %235 %240 424 %246 = OpAll %bool %245 425 %247 = OpLogicalAnd %bool %244 %246 426 %248 = OpFOrdEqual %v3bool %236 %241 427 %249 = OpAll %bool %248 428 %250 = OpLogicalAnd %bool %247 %249 429 OpBranch %233 430 %233 = OpLabel 431 %251 = OpPhi %bool %false %216 %250 %232 432 OpStore %ok %251 433 OpSelectionMerge %253 None 434 OpBranchConditional %251 %252 %253 435 %252 = OpLabel 436 %254 = OpLoad %mat3v3float %m3x3 437 %255 = OpCompositeExtract %v3float %254 0 438 %256 = OpFSub %v3float %255 %209 439 %257 = OpCompositeExtract %v3float %254 1 440 %258 = OpFSub %v3float %257 %209 441 %259 = OpCompositeExtract %v3float %254 2 442 %260 = OpFSub %v3float %259 %209 443 %261 = OpCompositeConstruct %mat3v3float %256 %258 %260 444 OpStore %m3x3 %261 445 %262 = OpFOrdEqual %v3bool %256 %218 446 %263 = OpAll %bool %262 447 %264 = OpFOrdEqual %v3bool %258 %219 448 %265 = OpAll %bool %264 449 %266 = OpLogicalAnd %bool %263 %265 450 %267 = OpFOrdEqual %v3bool %260 %220 451 %268 = OpAll %bool %267 452 %269 = OpLogicalAnd %bool %266 %268 453 OpBranch %253 454 %253 = OpLabel 455 %270 = OpPhi %bool %false %233 %269 %252 456 OpStore %ok %270 457 %271 = OpLoad %mat3v3float %m3x3 458 %272 = OpCompositeExtract %v3float %271 0 459 %273 = OpFSub %v3float %272 %209 460 %274 = OpCompositeExtract %v3float %271 1 461 %275 = OpFSub %v3float %274 %209 462 %276 = OpCompositeExtract %v3float %271 2 463 %277 = OpFSub %v3float %276 %209 464 %278 = OpCompositeConstruct %mat3v3float %273 %275 %277 465 OpStore %m3x3 %278 466 OpSelectionMerge %280 None 467 OpBranchConditional %270 %279 %280 468 %279 = OpLabel 469 %281 = OpFOrdEqual %v3bool %273 %205 470 %282 = OpAll %bool %281 471 %283 = OpFOrdEqual %v3bool %275 %206 472 %284 = OpAll %bool %283 473 %285 = OpLogicalAnd %bool %282 %284 474 %286 = OpFOrdEqual %v3bool %277 %207 475 %287 = OpAll %bool %286 476 %288 = OpLogicalAnd %bool %285 %287 477 OpBranch %280 478 %280 = OpLabel 479 %289 = OpPhi %bool %false %253 %288 %279 480 OpStore %ok %289 481 OpSelectionMerge %291 None 482 OpBranchConditional %289 %290 %291 483 %290 = OpLabel 484 %292 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 485 %294 = OpLoad %v4float %292 486 %295 = OpCompositeExtract %float %294 0 487 %296 = OpFUnordNotEqual %bool %295 %float_1 488 OpBranch %291 489 %291 = OpLabel 490 %297 = OpPhi %bool %false %280 %296 %290 491 OpStore %ok %297 492 OpSelectionMerge %299 None 493 OpBranchConditional %297 %298 %299 494 %298 = OpLabel 495 %301 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 496 %302 = OpLoad %v4float %301 497 %303 = OpCompositeExtract %float %302 1 498 %304 = OpFNegate %float %303 499 %305 = OpFOrdEqual %bool %float_n1 %304 500 OpBranch %299 501 %299 = OpLabel 502 %306 = OpPhi %bool %false %291 %305 %298 503 OpStore %ok %306 504 OpSelectionMerge %308 None 505 OpBranchConditional %306 %307 %308 506 %307 = OpLabel 507 %310 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 508 %311 = OpLoad %v4float %310 509 %312 = OpFNegate %v4float %311 510 %313 = OpFOrdEqual %v4bool %309 %312 511 %314 = OpAll %bool %313 512 OpBranch %308 513 %308 = OpLabel 514 %315 = OpPhi %bool %false %299 %314 %307 515 OpStore %ok %315 516 OpSelectionMerge %317 None 517 OpBranchConditional %315 %316 %317 518 %316 = OpLabel 519 %324 = OpAccessChain %_ptr_Uniform_mat2v2float %7 %int_2 520 %327 = OpLoad %mat2v2float %324 521 %328 = OpCompositeExtract %v2float %327 0 522 %329 = OpFNegate %v2float %328 523 %330 = OpCompositeExtract %v2float %327 1 524 %331 = OpFNegate %v2float %330 525 %332 = OpCompositeConstruct %mat2v2float %329 %331 526 %333 = OpFOrdEqual %v2bool %321 %329 527 %334 = OpAll %bool %333 528 %335 = OpFOrdEqual %v2bool %322 %331 529 %336 = OpAll %bool %335 530 %337 = OpLogicalAnd %bool %334 %336 531 OpBranch %317 532 %317 = OpLabel 533 %338 = OpPhi %bool %false %308 %337 %316 534 OpStore %ok %338 535 %342 = OpLoad %int %i 536 %343 = OpLoad %int %i 537 %344 = OpSNegate %int %343 538 %345 = OpCompositeConstruct %v2int %342 %344 539 OpStore %iv %345 540 OpSelectionMerge %347 None 541 OpBranchConditional %338 %346 %347 542 %346 = OpLabel 543 %348 = OpLoad %int %i 544 %349 = OpSNegate %int %348 545 %351 = OpIEqual %bool %349 %int_n5 546 OpBranch %347 547 %347 = OpLabel 548 %352 = OpPhi %bool %false %317 %351 %346 549 OpStore %ok %352 550 OpSelectionMerge %354 None 551 OpBranchConditional %352 %353 %354 552 %353 = OpLabel 553 %355 = OpSNegate %v2int %345 554 %357 = OpIEqual %v2bool %355 %356 555 %358 = OpAll %bool %357 556 OpBranch %354 557 %354 = OpLabel 558 %359 = OpPhi %bool %false %347 %358 %353 559 OpStore %ok %359 560 OpSelectionMerge %364 None 561 OpBranchConditional %359 %362 %363 562 %362 = OpLabel 563 %365 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0 564 %366 = OpLoad %v4float %365 565 OpStore %360 %366 566 OpBranch %364 567 %363 = OpLabel 568 %367 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1 569 %368 = OpLoad %v4float %367 570 OpStore %360 %368 571 OpBranch %364 572 %364 = OpLabel 573 %369 = OpLoad %v4float %360 574 OpReturnValue %369 575 OpFunctionEnd 576