Generate separate stores for partially swizzled memory stores
[platform/upstream/glslang.git] / Test / baseResults / spv.Operations.frag.out
index a856e6e..fc8e241 100644 (file)
@@ -1,12 +1,12 @@
 spv.Operations.frag
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 583
+// Id's are bound by 591
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 11 22 220 296 314 539 580
+                              EntryPoint Fragment 4  "main" 11 22 220 296 314 547 588
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 450
                               Name 4  "main"
@@ -26,13 +26,13 @@ spv.Operations.frag
                               Name 324  "lsb"
                               Name 325  "swizzleTemp"
                               Name 326  "ResType"
-                              Name 359  "b"
-                              Name 396  "ub42"
-                              Name 539  "FragColor"
-                              Name 557  "m1"
-                              Name 564  "m2"
-                              Name 580  "uiv4"
-                              Name 582  "ub"
+                              Name 367  "b"
+                              Name 404  "ub42"
+                              Name 547  "FragColor"
+                              Name 565  "m1"
+                              Name 572  "m2"
+                              Name 588  "uiv4"
+                              Name 590  "ub"
                               Decorate 11(uv4) Location 1
                               Decorate 22(ui) Flat
                               Decorate 22(ui) Location 3
@@ -41,9 +41,9 @@ spv.Operations.frag
                               Decorate 296(uui) Location 5
                               Decorate 314(uuv4) Flat
                               Decorate 314(uuv4) Location 4
-                              Decorate 539(FragColor) Location 0
-                              Decorate 580(uiv4) Flat
-                              Decorate 580(uiv4) Location 0
+                              Decorate 547(FragColor) Location 0
+                              Decorate 588(uiv4) Flat
+                              Decorate 588(uiv4) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -74,34 +74,34 @@ spv.Operations.frag
              320:             TypePointer Function 312(ivec4)
              322:             TypePointer Function 315(ivec3)
     326(ResType):             TypeStruct 315(ivec3) 315(ivec3)
-             338:    141(int) Constant 1
-             342:    141(int) Constant 2
-             358:             TypePointer Function 186(bool)
-       396(ub42):    188(ptr) Variable Private
-             452:     18(int) Constant 2
-             459:     18(int) Constant 1
-             489:             TypeVector 6(float) 3
-             508:    6(float) Constant 1073741824
-             515:    6(float) Constant 1065353216
-             520:     18(int) Constant 66
-             526:     18(int) Constant 17
-             538:             TypePointer Output 7(fvec4)
-  539(FragColor):    538(ptr) Variable Output
-             555:             TypeMatrix 7(fvec4) 4
-             556:             TypePointer Function 555
-             558:    6(float) Constant 0
-             559:    7(fvec4) ConstantComposite 515 558 558 558
-             560:    7(fvec4) ConstantComposite 558 515 558 558
-             561:    7(fvec4) ConstantComposite 558 558 515 558
-             562:    7(fvec4) ConstantComposite 558 558 558 515
-             563:         555 ConstantComposite 559 560 561 562
-             565:    7(fvec4) ConstantComposite 558 558 558 558
-             566:         555 ConstantComposite 565 565 565 565
-             578:             TypeVector 18(int) 4
-             579:             TypePointer Input 578(ivec4)
-       580(uiv4):    579(ptr) Variable Input
-             581:             TypePointer Private 186(bool)
-         582(ub):    581(ptr) Variable Private
+             333:    141(int) Constant 1
+             336:    141(int) Constant 2
+             366:             TypePointer Function 186(bool)
+       404(ub42):    188(ptr) Variable Private
+             460:     18(int) Constant 2
+             467:     18(int) Constant 1
+             497:             TypeVector 6(float) 3
+             516:    6(float) Constant 1073741824
+             523:    6(float) Constant 1065353216
+             528:     18(int) Constant 66
+             534:     18(int) Constant 17
+             546:             TypePointer Output 7(fvec4)
+  547(FragColor):    546(ptr) Variable Output
+             563:             TypeMatrix 7(fvec4) 4
+             564:             TypePointer Function 563
+             566:    6(float) Constant 0
+             567:    7(fvec4) ConstantComposite 523 566 566 566
+             568:    7(fvec4) ConstantComposite 566 523 566 566
+             569:    7(fvec4) ConstantComposite 566 566 523 566
+             570:    7(fvec4) ConstantComposite 566 566 566 523
+             571:         563 ConstantComposite 567 568 569 570
+             573:    7(fvec4) ConstantComposite 566 566 566 566
+             574:         563 ConstantComposite 573 573 573 573
+             586:             TypeVector 18(int) 4
+             587:             TypePointer Input 586(ivec4)
+       588(uiv4):    587(ptr) Variable Input
+             589:             TypePointer Private 186(bool)
+         590(ub):    589(ptr) Variable Private
          4(main):           2 Function None 3
                5:             Label
             9(v):      8(ptr) Variable Function
@@ -113,11 +113,11 @@ spv.Operations.frag
 323(swizzleTemp):    322(ptr) Variable Function
         324(lsb):    320(ptr) Variable Function
 325(swizzleTemp):    322(ptr) Variable Function
-          359(b):    358(ptr) Variable Function
-             541:      8(ptr) Variable Function
-         557(m1):    556(ptr) Variable Function
-         564(m2):    556(ptr) Variable Function
-             568:    556(ptr) Variable Function
+          367(b):    366(ptr) Variable Function
+             549:      8(ptr) Variable Function
+         565(m1):    564(ptr) Variable Function
+         572(m2):    564(ptr) Variable Function
+             576:    564(ptr) Variable Function
               12:    7(fvec4) Load 11(uv4)
               13:    7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12
                               Store 9(v) 13
@@ -469,306 +469,318 @@ spv.Operations.frag
              329:  315(ivec3) CompositeExtract 327 1
                               Store 323(swizzleTemp) 329
              330:  315(ivec3) Load 323(swizzleTemp)
-             331:  312(ivec4) Load 321(msb)
-             332:  312(ivec4) VectorShuffle 331 330 4 5 6 3
-                              Store 321(msb) 332
-             333:  315(ivec3) Load 325(swizzleTemp)
-             334:  312(ivec4) Load 324(lsb)
-             335:  312(ivec4) VectorShuffle 334 333 4 5 6 3
-                              Store 324(lsb) 335
-             336:    292(ptr) AccessChain 321(msb) 142
-             337:    141(int) Load 336
-             339:    292(ptr) AccessChain 321(msb) 338
-             340:    141(int) Load 339
-             341:    141(int) IAdd 337 340
-             343:    292(ptr) AccessChain 321(msb) 342
-             344:    141(int) Load 343
-             345:    141(int) IAdd 341 344
-             346:    141(int) Load 293(u)
-             347:    141(int) IAdd 346 345
-                              Store 293(u) 347
-             348:    292(ptr) AccessChain 324(lsb) 142
+             331:    292(ptr) AccessChain 321(msb) 142
+             332:    141(int) CompositeExtract 330 0
+                              Store 331 332
+             334:    292(ptr) AccessChain 321(msb) 333
+             335:    141(int) CompositeExtract 330 1
+                              Store 334 335
+             337:    292(ptr) AccessChain 321(msb) 336
+             338:    141(int) CompositeExtract 330 2
+                              Store 337 338
+             339:  315(ivec3) Load 325(swizzleTemp)
+             340:    292(ptr) AccessChain 324(lsb) 142
+             341:    141(int) CompositeExtract 339 0
+                              Store 340 341
+             342:    292(ptr) AccessChain 324(lsb) 333
+             343:    141(int) CompositeExtract 339 1
+                              Store 342 343
+             344:    292(ptr) AccessChain 324(lsb) 336
+             345:    141(int) CompositeExtract 339 2
+                              Store 344 345
+             346:    292(ptr) AccessChain 321(msb) 142
+             347:    141(int) Load 346
+             348:    292(ptr) AccessChain 321(msb) 333
              349:    141(int) Load 348
-             350:    292(ptr) AccessChain 324(lsb) 338
-             351:    141(int) Load 350
-             352:    141(int) IAdd 349 351
-             353:    292(ptr) AccessChain 324(lsb) 342
-             354:    141(int) Load 353
-             355:    141(int) IAdd 352 354
-             356:    141(int) Load 293(u)
-             357:    141(int) IAdd 356 355
-                              Store 293(u) 357
-             360:    6(float) Load 220(uf)
-             361:   186(bool) IsNan 360
-                              Store 359(b) 361
-             362:    6(float) Load 196(f)
-             363:   186(bool) IsInf 362
-                              Store 359(b) 363
-             364:    7(fvec4) Load 9(v)
-             365:    7(fvec4) Load 11(uv4)
-             366:  187(bvec4) FOrdLessThan 364 365
-             367:   186(bool) Any 366
-                              Store 359(b) 367
-             368:   186(bool) Load 359(b)
-                              SelectionMerge 370 None
-                              BranchConditional 368 369 370
-             369:               Label
-             371:    7(fvec4)   Load 9(v)
-             372:    7(fvec4)   Load 11(uv4)
-             373:  187(bvec4)   FOrdLessThanEqual 371 372
-             374:   186(bool)   Any 373
-                                Branch 370
-             370:             Label
-             375:   186(bool) Phi 368 5 374 369
-                              Store 359(b) 375
-             376:   186(bool) Load 359(b)
+             350:    141(int) IAdd 347 349
+             351:    292(ptr) AccessChain 321(msb) 336
+             352:    141(int) Load 351
+             353:    141(int) IAdd 350 352
+             354:    141(int) Load 293(u)
+             355:    141(int) IAdd 354 353
+                              Store 293(u) 355
+             356:    292(ptr) AccessChain 324(lsb) 142
+             357:    141(int) Load 356
+             358:    292(ptr) AccessChain 324(lsb) 333
+             359:    141(int) Load 358
+             360:    141(int) IAdd 357 359
+             361:    292(ptr) AccessChain 324(lsb) 336
+             362:    141(int) Load 361
+             363:    141(int) IAdd 360 362
+             364:    141(int) Load 293(u)
+             365:    141(int) IAdd 364 363
+                              Store 293(u) 365
+             368:    6(float) Load 220(uf)
+             369:   186(bool) IsNan 368
+                              Store 367(b) 369
+             370:    6(float) Load 196(f)
+             371:   186(bool) IsInf 370
+                              Store 367(b) 371
+             372:    7(fvec4) Load 9(v)
+             373:    7(fvec4) Load 11(uv4)
+             374:  187(bvec4) FOrdLessThan 372 373
+             375:   186(bool) Any 374
+                              Store 367(b) 375
+             376:   186(bool) Load 367(b)
                               SelectionMerge 378 None
                               BranchConditional 376 377 378
              377:               Label
              379:    7(fvec4)   Load 9(v)
              380:    7(fvec4)   Load 11(uv4)
-             381:  187(bvec4)   FOrdGreaterThan 379 380
+             381:  187(bvec4)   FOrdLessThanEqual 379 380
              382:   186(bool)   Any 381
                                 Branch 378
              378:             Label
-             383:   186(bool) Phi 376 370 382 377
-                              Store 359(b) 383
-             384:   186(bool) Load 359(b)
+             383:   186(bool) Phi 376 5 382 377
+                              Store 367(b) 383
+             384:   186(bool) Load 367(b)
                               SelectionMerge 386 None
                               BranchConditional 384 385 386
              385:               Label
              387:    7(fvec4)   Load 9(v)
              388:    7(fvec4)   Load 11(uv4)
-             389:  187(bvec4)   FOrdGreaterThanEqual 387 388
+             389:  187(bvec4)   FOrdGreaterThan 387 388
              390:   186(bool)   Any 389
                                 Branch 386
              386:             Label
              391:   186(bool) Phi 384 378 390 385
-                              Store 359(b) 391
-             392:   186(bool) Load 359(b)
+                              Store 367(b) 391
+             392:   186(bool) Load 367(b)
                               SelectionMerge 394 None
                               BranchConditional 392 393 394
              393:               Label
-             395:  187(bvec4)   Load 189(ub41)
-             397:  187(bvec4)   Load 396(ub42)
-             398:  187(bvec4)   LogicalEqual 395 397
-             399:   186(bool)   Any 398
+             395:    7(fvec4)   Load 9(v)
+             396:    7(fvec4)   Load 11(uv4)
+             397:  187(bvec4)   FOrdGreaterThanEqual 395 396
+             398:   186(bool)   Any 397
                                 Branch 394
              394:             Label
-             400:   186(bool) Phi 392 386 399 393
-                              Store 359(b) 400
-             401:   186(bool) Load 359(b)
-                              SelectionMerge 403 None
-                              BranchConditional 401 402 403
-             402:               Label
-             404:  187(bvec4)   Load 189(ub41)
-             405:  187(bvec4)   Load 396(ub42)
-             406:  187(bvec4)   LogicalNotEqual 404 405
+             399:   186(bool) Phi 392 386 398 393
+                              Store 367(b) 399
+             400:   186(bool) Load 367(b)
+                              SelectionMerge 402 None
+                              BranchConditional 400 401 402
+             401:               Label
+             403:  187(bvec4)   Load 189(ub41)
+             405:  187(bvec4)   Load 404(ub42)
+             406:  187(bvec4)   LogicalEqual 403 405
              407:   186(bool)   Any 406
-                                Branch 403
-             403:             Label
-             408:   186(bool) Phi 401 394 407 402
-                              Store 359(b) 408
-             409:   186(bool) Load 359(b)
-             410:  187(bvec4) Load 189(ub41)
-             411:   186(bool) Any 410
-             412:   186(bool) LogicalAnd 409 411
-                              Store 359(b) 412
-             413:   186(bool) Load 359(b)
-             414:  187(bvec4) Load 189(ub41)
-             415:   186(bool) All 414
-             416:   186(bool) LogicalAnd 413 415
-                              Store 359(b) 416
-             417:   186(bool) Load 359(b)
-                              SelectionMerge 419 None
-                              BranchConditional 417 418 419
-             418:               Label
-             420:  187(bvec4)   Load 189(ub41)
-             421:  187(bvec4)   LogicalNot 420
-             422:   186(bool)   Any 421
-                                Branch 419
-             419:             Label
-             423:   186(bool) Phi 417 403 422 418
-                              Store 359(b) 423
-             424:     18(int) Load 20(i)
-             425:     18(int) Load 22(ui)
-             426:     18(int) IAdd 424 425
-             427:     18(int) Load 20(i)
-             428:     18(int) IMul 426 427
-             429:     18(int) Load 22(ui)
-             430:     18(int) ISub 428 429
-             431:     18(int) Load 20(i)
-             432:     18(int) SDiv 430 431
-                              Store 20(i) 432
-             433:     18(int) Load 20(i)
-             434:     18(int) Load 22(ui)
-             435:     18(int) SMod 433 434
-                              Store 20(i) 435
-             436:     18(int) Load 20(i)
+                                Branch 402
+             402:             Label
+             408:   186(bool) Phi 400 394 407 401
+                              Store 367(b) 408
+             409:   186(bool) Load 367(b)
+                              SelectionMerge 411 None
+                              BranchConditional 409 410 411
+             410:               Label
+             412:  187(bvec4)   Load 189(ub41)
+             413:  187(bvec4)   Load 404(ub42)
+             414:  187(bvec4)   LogicalNotEqual 412 413
+             415:   186(bool)   Any 414
+                                Branch 411
+             411:             Label
+             416:   186(bool) Phi 409 402 415 410
+                              Store 367(b) 416
+             417:   186(bool) Load 367(b)
+             418:  187(bvec4) Load 189(ub41)
+             419:   186(bool) Any 418
+             420:   186(bool) LogicalAnd 417 419
+                              Store 367(b) 420
+             421:   186(bool) Load 367(b)
+             422:  187(bvec4) Load 189(ub41)
+             423:   186(bool) All 422
+             424:   186(bool) LogicalAnd 421 423
+                              Store 367(b) 424
+             425:   186(bool) Load 367(b)
+                              SelectionMerge 427 None
+                              BranchConditional 425 426 427
+             426:               Label
+             428:  187(bvec4)   Load 189(ub41)
+             429:  187(bvec4)   LogicalNot 428
+             430:   186(bool)   Any 429
+                                Branch 427
+             427:             Label
+             431:   186(bool) Phi 425 411 430 426
+                              Store 367(b) 431
+             432:     18(int) Load 20(i)
+             433:     18(int) Load 22(ui)
+             434:     18(int) IAdd 432 433
+             435:     18(int) Load 20(i)
+             436:     18(int) IMul 434 435
              437:     18(int) Load 22(ui)
-             438:   186(bool) IEqual 436 437
-             439:   186(bool) LogicalNot 438
-                              SelectionMerge 441 None
-                              BranchConditional 439 440 441
-             440:               Label
-             442:     18(int)   Load 20(i)
-             443:     18(int)   Load 22(ui)
-             444:   186(bool)   INotEqual 442 443
-                                SelectionMerge 446 None
-                                BranchConditional 444 445 446
-             445:                 Label
-             447:     18(int)     Load 20(i)
-             448:     18(int)     Load 22(ui)
-             449:   186(bool)     IEqual 447 448
-                                  Branch 446
-             446:               Label
-             450:   186(bool)   Phi 444 440 449 445
-             451:     18(int)   Load 20(i)
-             453:   186(bool)   INotEqual 451 452
-             454:   186(bool)   LogicalNotEqual 450 453
-                                Branch 441
-             441:             Label
-             455:   186(bool) Phi 438 419 454 446
-                              SelectionMerge 457 None
-                              BranchConditional 455 456 457
-             456:               Label
-             458:     18(int)   Load 20(i)
-             460:     18(int)   IAdd 458 459
-                                Store 20(i) 460
-                                Branch 457
-             457:             Label
-             461:    6(float) Load 220(uf)
-             462:    6(float) Load 220(uf)
-             463:    6(float) FAdd 461 462
-             464:    6(float) Load 220(uf)
-             465:    6(float) FMul 463 464
-             466:    6(float) Load 220(uf)
-             467:    6(float) FSub 465 466
-             468:    6(float) Load 220(uf)
-             469:    6(float) FDiv 467 468
-                              Store 196(f) 469
-             470:    7(fvec4) Load 9(v)
-             471:    6(float) ExtInst 1(GLSL.std.450) 66(Length) 470
-             472:    6(float) Load 196(f)
-             473:    6(float) FAdd 472 471
-                              Store 196(f) 473
-             474:    7(fvec4) Load 9(v)
-             475:    7(fvec4) Load 9(v)
-             476:    6(float) ExtInst 1(GLSL.std.450) 67(Distance) 474 475
-             477:    6(float) Load 196(f)
-             478:    6(float) FAdd 477 476
-                              Store 196(f) 478
-             479:    7(fvec4) Load 9(v)
-             480:    7(fvec4) Load 9(v)
-             481:    6(float) Dot 479 480
-             482:    6(float) Load 196(f)
-             483:    6(float) FAdd 482 481
-                              Store 196(f) 483
-             484:    6(float) Load 196(f)
-             485:    6(float) Load 220(uf)
-             486:    6(float) FMul 484 485
-             487:    6(float) Load 196(f)
-             488:    6(float) FAdd 487 486
-                              Store 196(f) 488
-             490:    7(fvec4) Load 9(v)
-             491:  489(fvec3) VectorShuffle 490 490 0 1 2
-             492:    7(fvec4) Load 9(v)
-             493:  489(fvec3) VectorShuffle 492 492 0 1 2
-             494:  489(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 491 493
-             495:    6(float) CompositeExtract 494 0
-             496:    6(float) Load 196(f)
-             497:    6(float) FAdd 496 495
-                              Store 196(f) 497
-             498:    6(float) Load 196(f)
-             499:    6(float) Load 220(uf)
-             500:   186(bool) FOrdEqual 498 499
-             501:   186(bool) LogicalNot 500
-                              SelectionMerge 503 None
-                              BranchConditional 501 502 503
-             502:               Label
-             504:    6(float)   Load 196(f)
-             505:    6(float)   Load 220(uf)
-             506:   186(bool)   FUnordNotEqual 504 505
-             507:    6(float)   Load 196(f)
-             509:   186(bool)   FUnordNotEqual 507 508
-             510:   186(bool)   LogicalAnd 506 509
-                                Branch 503
-             503:             Label
-             511:   186(bool) Phi 500 457 510 502
-                              SelectionMerge 513 None
-                              BranchConditional 511 512 513
-             512:               Label
-             514:    6(float)   Load 196(f)
-             516:    6(float)   FAdd 514 515
-                                Store 196(f) 516
-                                Branch 513
-             513:             Label
-             517:     18(int) Load 22(ui)
-             518:     18(int) Load 20(i)
-             519:     18(int) BitwiseAnd 518 517
-                              Store 20(i) 519
-             521:     18(int) Load 20(i)
-             522:     18(int) BitwiseOr 521 520
-                              Store 20(i) 522
-             523:     18(int) Load 22(ui)
-             524:     18(int) Load 20(i)
-             525:     18(int) BitwiseXor 524 523
-                              Store 20(i) 525
-             527:     18(int) Load 20(i)
-             528:     18(int) SMod 527 526
-                              Store 20(i) 528
+             438:     18(int) ISub 436 437
+             439:     18(int) Load 20(i)
+             440:     18(int) SDiv 438 439
+                              Store 20(i) 440
+             441:     18(int) Load 20(i)
+             442:     18(int) Load 22(ui)
+             443:     18(int) SMod 441 442
+                              Store 20(i) 443
+             444:     18(int) Load 20(i)
+             445:     18(int) Load 22(ui)
+             446:   186(bool) IEqual 444 445
+             447:   186(bool) LogicalNot 446
+                              SelectionMerge 449 None
+                              BranchConditional 447 448 449
+             448:               Label
+             450:     18(int)   Load 20(i)
+             451:     18(int)   Load 22(ui)
+             452:   186(bool)   INotEqual 450 451
+                                SelectionMerge 454 None
+                                BranchConditional 452 453 454
+             453:                 Label
+             455:     18(int)     Load 20(i)
+             456:     18(int)     Load 22(ui)
+             457:   186(bool)     IEqual 455 456
+                                  Branch 454
+             454:               Label
+             458:   186(bool)   Phi 452 448 457 453
+             459:     18(int)   Load 20(i)
+             461:   186(bool)   INotEqual 459 460
+             462:   186(bool)   LogicalNotEqual 458 461
+                                Branch 449
+             449:             Label
+             463:   186(bool) Phi 446 427 462 454
+                              SelectionMerge 465 None
+                              BranchConditional 463 464 465
+             464:               Label
+             466:     18(int)   Load 20(i)
+             468:     18(int)   IAdd 466 467
+                                Store 20(i) 468
+                                Branch 465
+             465:             Label
+             469:    6(float) Load 220(uf)
+             470:    6(float) Load 220(uf)
+             471:    6(float) FAdd 469 470
+             472:    6(float) Load 220(uf)
+             473:    6(float) FMul 471 472
+             474:    6(float) Load 220(uf)
+             475:    6(float) FSub 473 474
+             476:    6(float) Load 220(uf)
+             477:    6(float) FDiv 475 476
+                              Store 196(f) 477
+             478:    7(fvec4) Load 9(v)
+             479:    6(float) ExtInst 1(GLSL.std.450) 66(Length) 478
+             480:    6(float) Load 196(f)
+             481:    6(float) FAdd 480 479
+                              Store 196(f) 481
+             482:    7(fvec4) Load 9(v)
+             483:    7(fvec4) Load 9(v)
+             484:    6(float) ExtInst 1(GLSL.std.450) 67(Distance) 482 483
+             485:    6(float) Load 196(f)
+             486:    6(float) FAdd 485 484
+                              Store 196(f) 486
+             487:    7(fvec4) Load 9(v)
+             488:    7(fvec4) Load 9(v)
+             489:    6(float) Dot 487 488
+             490:    6(float) Load 196(f)
+             491:    6(float) FAdd 490 489
+                              Store 196(f) 491
+             492:    6(float) Load 196(f)
+             493:    6(float) Load 220(uf)
+             494:    6(float) FMul 492 493
+             495:    6(float) Load 196(f)
+             496:    6(float) FAdd 495 494
+                              Store 196(f) 496
+             498:    7(fvec4) Load 9(v)
+             499:  497(fvec3) VectorShuffle 498 498 0 1 2
+             500:    7(fvec4) Load 9(v)
+             501:  497(fvec3) VectorShuffle 500 500 0 1 2
+             502:  497(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 499 501
+             503:    6(float) CompositeExtract 502 0
+             504:    6(float) Load 196(f)
+             505:    6(float) FAdd 504 503
+                              Store 196(f) 505
+             506:    6(float) Load 196(f)
+             507:    6(float) Load 220(uf)
+             508:   186(bool) FOrdEqual 506 507
+             509:   186(bool) LogicalNot 508
+                              SelectionMerge 511 None
+                              BranchConditional 509 510 511
+             510:               Label
+             512:    6(float)   Load 196(f)
+             513:    6(float)   Load 220(uf)
+             514:   186(bool)   FUnordNotEqual 512 513
+             515:    6(float)   Load 196(f)
+             517:   186(bool)   FUnordNotEqual 515 516
+             518:   186(bool)   LogicalAnd 514 517
+                                Branch 511
+             511:             Label
+             519:   186(bool) Phi 508 465 518 510
+                              SelectionMerge 521 None
+                              BranchConditional 519 520 521
+             520:               Label
+             522:    6(float)   Load 196(f)
+             524:    6(float)   FAdd 522 523
+                                Store 196(f) 524
+                                Branch 521
+             521:             Label
+             525:     18(int) Load 22(ui)
+             526:     18(int) Load 20(i)
+             527:     18(int) BitwiseAnd 526 525
+                              Store 20(i) 527
              529:     18(int) Load 20(i)
-             530:     18(int) ShiftRightArithmetic 529 452
+             530:     18(int) BitwiseOr 529 528
                               Store 20(i) 530
              531:     18(int) Load 22(ui)
              532:     18(int) Load 20(i)
-             533:     18(int) ShiftLeftLogical 532 531
+             533:     18(int) BitwiseXor 532 531
                               Store 20(i) 533
-             534:     18(int) Load 20(i)
-             535:     18(int) Not 534
-                              Store 20(i) 535
-             536:   186(bool) Load 359(b)
-             537:   186(bool) LogicalNot 536
-                              Store 359(b) 537
-             540:   186(bool) Load 359(b)
-                              SelectionMerge 543 None
-                              BranchConditional 540 542 552
-             542:               Label
-             544:     18(int)   Load 20(i)
-             545:    6(float)   ConvertSToF 544
-             546:    7(fvec4)   CompositeConstruct 545 545 545 545
-             547:    6(float)   Load 196(f)
-             548:    7(fvec4)   CompositeConstruct 547 547 547 547
-             549:    7(fvec4)   FAdd 546 548
-             550:    7(fvec4)   Load 9(v)
-             551:    7(fvec4)   FAdd 549 550
-                                Store 541 551
-                                Branch 543
-             552:               Label
-             553:    7(fvec4)   Load 9(v)
-                                Store 541 553
-                                Branch 543
-             543:             Label
-             554:    7(fvec4) Load 541
-                              Store 539(FragColor) 554
-                              Store 557(m1) 563
-                              Store 564(m2) 566
-             567:   186(bool) Load 359(b)
-                              SelectionMerge 570 None
-                              BranchConditional 567 569 572
-             569:               Label
-             571:         555   Load 557(m1)
-                                Store 568 571
-                                Branch 570
-             572:               Label
-             573:         555   Load 564(m2)
-                                Store 568 573
-                                Branch 570
-             570:             Label
-             574:      8(ptr) AccessChain 568 459
-             575:    7(fvec4) Load 574
-             576:    7(fvec4) Load 539(FragColor)
-             577:    7(fvec4) FAdd 576 575
-                              Store 539(FragColor) 577
+             535:     18(int) Load 20(i)
+             536:     18(int) SMod 535 534
+                              Store 20(i) 536
+             537:     18(int) Load 20(i)
+             538:     18(int) ShiftRightArithmetic 537 460
+                              Store 20(i) 538
+             539:     18(int) Load 22(ui)
+             540:     18(int) Load 20(i)
+             541:     18(int) ShiftLeftLogical 540 539
+                              Store 20(i) 541
+             542:     18(int) Load 20(i)
+             543:     18(int) Not 542
+                              Store 20(i) 543
+             544:   186(bool) Load 367(b)
+             545:   186(bool) LogicalNot 544
+                              Store 367(b) 545
+             548:   186(bool) Load 367(b)
+                              SelectionMerge 551 None
+                              BranchConditional 548 550 560
+             550:               Label
+             552:     18(int)   Load 20(i)
+             553:    6(float)   ConvertSToF 552
+             554:    7(fvec4)   CompositeConstruct 553 553 553 553
+             555:    6(float)   Load 196(f)
+             556:    7(fvec4)   CompositeConstruct 555 555 555 555
+             557:    7(fvec4)   FAdd 554 556
+             558:    7(fvec4)   Load 9(v)
+             559:    7(fvec4)   FAdd 557 558
+                                Store 549 559
+                                Branch 551
+             560:               Label
+             561:    7(fvec4)   Load 9(v)
+                                Store 549 561
+                                Branch 551
+             551:             Label
+             562:    7(fvec4) Load 549
+                              Store 547(FragColor) 562
+                              Store 565(m1) 571
+                              Store 572(m2) 574
+             575:   186(bool) Load 367(b)
+                              SelectionMerge 578 None
+                              BranchConditional 575 577 580
+             577:               Label
+             579:         563   Load 565(m1)
+                                Store 576 579
+                                Branch 578
+             580:               Label
+             581:         563   Load 572(m2)
+                                Store 576 581
+                                Branch 578
+             578:             Label
+             582:      8(ptr) AccessChain 576 467
+             583:    7(fvec4) Load 582
+             584:    7(fvec4) Load 547(FragColor)
+             585:    7(fvec4) FAdd 584 583
+                              Store 547(FragColor) 585
                               Return
                               FunctionEnd