1hlsl.forLoop.frag 2Shader version: 500 3gl_FragCoord origin is upper left 40:? Sequence 50:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 60:2 Function Parameters: 70:2 'input' ( in 4-component vector of float) 80:? Sequence 90:? Sequence 100:3 Loop with condition tested first 110:3 No loop condition 120:3 No loop body 130:4 Sequence 140:4 Pre-Increment ( temp 4-component vector of float) 150:4 'input' ( in 4-component vector of float) 160:4 Loop with condition tested first 170:4 No loop condition 180:4 No loop body 190:? Sequence 200:5 Loop with condition tested first: Unroll 210:5 Loop Condition 220:5 any ( temp bool) 230:5 NotEqual ( temp 4-component vector of bool) 240:5 'input' ( in 4-component vector of float) 250:5 'input' ( in 4-component vector of float) 260:5 No loop body 270:? Sequence 280:6 Loop with condition tested first 290:6 Loop Condition 300:6 any ( temp bool) 310:6 NotEqual ( temp 4-component vector of bool) 320:6 'input' ( in 4-component vector of float) 330:6 'input' ( in 4-component vector of float) 340:6 Loop Body 350:? Sequence 360:6 Branch: Return with expression 370:6 Negate value ( temp 4-component vector of float) 380:6 'input' ( in 4-component vector of float) 390:7 Sequence 400:7 Pre-Decrement ( temp 4-component vector of float) 410:7 'input' ( in 4-component vector of float) 420:7 Loop with condition tested first 430:7 Loop Condition 440:7 any ( temp bool) 450:7 NotEqual ( temp 4-component vector of bool) 460:7 'input' ( in 4-component vector of float) 470:7 'input' ( in 4-component vector of float) 480:7 Loop Body 490:? Sequence 500:7 Branch: Return with expression 510:7 Negate value ( temp 4-component vector of float) 520:7 'input' ( in 4-component vector of float) 530:7 Loop Terminal Expression 540:7 add second child into first child ( temp 4-component vector of float) 550:7 'input' ( in 4-component vector of float) 560:7 Constant: 570:7 2.000000 580:? Sequence 590:8 Loop with condition tested first 600:8 No loop condition 610:8 Loop Body 620:8 Test condition and select ( temp void) 630:8 Condition 640:8 Compare Greater Than ( temp bool) 650:8 direct index ( temp float) 660:8 'input' ( in 4-component vector of float) 670:8 Constant: 680:8 0 (const int) 690:8 Constant: 700:8 2.000000 710:8 true case 720:8 Branch: Break 730:? Sequence 740:9 Loop with condition tested first 750:9 No loop condition 760:9 Loop Body 770:9 Test condition and select ( temp void) 780:9 Condition 790:9 Compare Greater Than ( temp bool) 800:9 direct index ( temp float) 810:9 'input' ( in 4-component vector of float) 820:9 Constant: 830:9 0 (const int) 840:9 Constant: 850:9 2.000000 860:9 true case 870:9 Branch: Continue 880:11 Sequence 890:11 move second child to first child ( temp int) 900:11 'ii' ( temp int) 910:11 Constant: 920:11 -1 (const int) 930:11 Loop with condition tested first 940:11 Loop Condition 950:11 Compare Less Than ( temp bool) 960:11 'ii' ( temp int) 970:11 Constant: 980:11 3 (const int) 990:11 Loop Body 1000:11 Test condition and select ( temp void) 1010:11 Condition 1020:11 Compare Equal ( temp bool) 1030:11 'ii' ( temp int) 1040:11 Constant: 1050:11 2 (const int) 1060:11 true case 1070:11 Branch: Continue 1080:11 Loop Terminal Expression 1090:11 Pre-Increment ( temp int) 1100:11 'ii' ( temp int) 1110:12 Pre-Decrement ( temp float) 1120:12 'ii' ( temp float) 1130:13 Sequence 1140:13 move second child to first child ( temp int) 1150:13 'first' ( temp int) 1160:13 Constant: 1170:13 0 (const int) 1180:13 move second child to first child ( temp int) 1190:13 'second' ( temp int) 1200:13 Constant: 1210:13 1 (const int) 1220:13 Loop with condition tested first 1230:13 No loop condition 1240:13 Loop Body 1250:13 add ( temp int) 1260:13 'first' ( temp int) 1270:13 'second' ( temp int) 1280:14 Sequence 1290:14 move second child to first child ( temp int) 1300:14 'i' ( temp int) 1310:14 Constant: 1320:14 0 (const int) 1330:14 move second child to first child ( temp int) 1340:14 'count' ( temp int) 1350:14 Convert float to int ( temp int) 1360:14 'ii' ( temp float) 1370:14 Loop with condition tested first 1380:14 Loop Condition 1390:14 Compare Less Than ( temp bool) 1400:14 'i' ( temp int) 1410:14 'count' ( temp int) 1420:14 No loop body 1430:14 Loop Terminal Expression 1440:14 Post-Increment ( temp int) 1450:14 'i' ( temp int) 1460:15 Sequence 1470:15 move second child to first child ( temp float) 1480:15 'first' ( temp float) 1490:15 Constant: 1500:15 0.000000 1510:15 Loop with condition tested first 1520:15 Loop Condition 1530:15 Compare Less Than ( temp bool) 1540:15 'first' ( temp float) 1550:15 direct index ( temp float) 1560:15 'second' ( temp 2-element array of float) 1570:15 Constant: 1580:15 0 (const int) 1590:15 Loop Body 1600:15 add ( temp float) 1610:15 add ( temp float) 1620:15 'first' ( temp float) 1630:15 direct index ( temp float) 1640:15 'second' ( temp 2-element array of float) 1650:15 Constant: 1660:15 1 (const int) 1670:15 'third' ( temp float) 1680:15 Loop Terminal Expression 1690:15 Pre-Increment ( temp float) 1700:15 direct index ( temp float) 1710:15 'second' ( temp 2-element array of float) 1720:15 Constant: 1730:15 1 (const int) 1740:? Sequence 1750:16 Comma ( temp float) 1760:16 Comma ( temp float) 1770:16 Pre-Decrement ( temp float) 1780:16 'ii' ( temp float) 1790:16 Pre-Decrement ( temp float) 1800:16 'ii' ( temp float) 1810:16 Pre-Decrement ( temp float) 1820:16 'ii' ( temp float) 1830:16 Loop with condition tested first 1840:16 No loop condition 1850:16 Loop Body 1860:16 'ii' ( temp float) 1870:2 Function Definition: PixelShaderFunction( ( temp void) 1880:2 Function Parameters: 1890:? Sequence 1900:2 move second child to first child ( temp 4-component vector of float) 1910:? 'input' ( temp 4-component vector of float) 1920:? 'input' (layout( location=0) in 4-component vector of float) 1930:2 move second child to first child ( temp 4-component vector of float) 1940:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 1950:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 1960:? 'input' ( temp 4-component vector of float) 1970:? Linker Objects 1980:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 1990:? 'input' (layout( location=0) in 4-component vector of float) 200 201 202Linked fragment stage: 203 204 205Shader version: 500 206gl_FragCoord origin is upper left 2070:? Sequence 2080:2 Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 2090:2 Function Parameters: 2100:2 'input' ( in 4-component vector of float) 2110:? Sequence 2120:? Sequence 2130:3 Loop with condition tested first 2140:3 No loop condition 2150:3 No loop body 2160:4 Sequence 2170:4 Pre-Increment ( temp 4-component vector of float) 2180:4 'input' ( in 4-component vector of float) 2190:4 Loop with condition tested first 2200:4 No loop condition 2210:4 No loop body 2220:? Sequence 2230:5 Loop with condition tested first: Unroll 2240:5 Loop Condition 2250:5 any ( temp bool) 2260:5 NotEqual ( temp 4-component vector of bool) 2270:5 'input' ( in 4-component vector of float) 2280:5 'input' ( in 4-component vector of float) 2290:5 No loop body 2300:? Sequence 2310:6 Loop with condition tested first 2320:6 Loop Condition 2330:6 any ( temp bool) 2340:6 NotEqual ( temp 4-component vector of bool) 2350:6 'input' ( in 4-component vector of float) 2360:6 'input' ( in 4-component vector of float) 2370:6 Loop Body 2380:? Sequence 2390:6 Branch: Return with expression 2400:6 Negate value ( temp 4-component vector of float) 2410:6 'input' ( in 4-component vector of float) 2420:7 Sequence 2430:7 Pre-Decrement ( temp 4-component vector of float) 2440:7 'input' ( in 4-component vector of float) 2450:7 Loop with condition tested first 2460:7 Loop Condition 2470:7 any ( temp bool) 2480:7 NotEqual ( temp 4-component vector of bool) 2490:7 'input' ( in 4-component vector of float) 2500:7 'input' ( in 4-component vector of float) 2510:7 Loop Body 2520:? Sequence 2530:7 Branch: Return with expression 2540:7 Negate value ( temp 4-component vector of float) 2550:7 'input' ( in 4-component vector of float) 2560:7 Loop Terminal Expression 2570:7 add second child into first child ( temp 4-component vector of float) 2580:7 'input' ( in 4-component vector of float) 2590:7 Constant: 2600:7 2.000000 2610:? Sequence 2620:8 Loop with condition tested first 2630:8 No loop condition 2640:8 Loop Body 2650:8 Test condition and select ( temp void) 2660:8 Condition 2670:8 Compare Greater Than ( temp bool) 2680:8 direct index ( temp float) 2690:8 'input' ( in 4-component vector of float) 2700:8 Constant: 2710:8 0 (const int) 2720:8 Constant: 2730:8 2.000000 2740:8 true case 2750:8 Branch: Break 2760:? Sequence 2770:9 Loop with condition tested first 2780:9 No loop condition 2790:9 Loop Body 2800:9 Test condition and select ( temp void) 2810:9 Condition 2820:9 Compare Greater Than ( temp bool) 2830:9 direct index ( temp float) 2840:9 'input' ( in 4-component vector of float) 2850:9 Constant: 2860:9 0 (const int) 2870:9 Constant: 2880:9 2.000000 2890:9 true case 2900:9 Branch: Continue 2910:11 Sequence 2920:11 move second child to first child ( temp int) 2930:11 'ii' ( temp int) 2940:11 Constant: 2950:11 -1 (const int) 2960:11 Loop with condition tested first 2970:11 Loop Condition 2980:11 Compare Less Than ( temp bool) 2990:11 'ii' ( temp int) 3000:11 Constant: 3010:11 3 (const int) 3020:11 Loop Body 3030:11 Test condition and select ( temp void) 3040:11 Condition 3050:11 Compare Equal ( temp bool) 3060:11 'ii' ( temp int) 3070:11 Constant: 3080:11 2 (const int) 3090:11 true case 3100:11 Branch: Continue 3110:11 Loop Terminal Expression 3120:11 Pre-Increment ( temp int) 3130:11 'ii' ( temp int) 3140:12 Pre-Decrement ( temp float) 3150:12 'ii' ( temp float) 3160:13 Sequence 3170:13 move second child to first child ( temp int) 3180:13 'first' ( temp int) 3190:13 Constant: 3200:13 0 (const int) 3210:13 move second child to first child ( temp int) 3220:13 'second' ( temp int) 3230:13 Constant: 3240:13 1 (const int) 3250:13 Loop with condition tested first 3260:13 No loop condition 3270:13 Loop Body 3280:13 add ( temp int) 3290:13 'first' ( temp int) 3300:13 'second' ( temp int) 3310:14 Sequence 3320:14 move second child to first child ( temp int) 3330:14 'i' ( temp int) 3340:14 Constant: 3350:14 0 (const int) 3360:14 move second child to first child ( temp int) 3370:14 'count' ( temp int) 3380:14 Convert float to int ( temp int) 3390:14 'ii' ( temp float) 3400:14 Loop with condition tested first 3410:14 Loop Condition 3420:14 Compare Less Than ( temp bool) 3430:14 'i' ( temp int) 3440:14 'count' ( temp int) 3450:14 No loop body 3460:14 Loop Terminal Expression 3470:14 Post-Increment ( temp int) 3480:14 'i' ( temp int) 3490:15 Sequence 3500:15 move second child to first child ( temp float) 3510:15 'first' ( temp float) 3520:15 Constant: 3530:15 0.000000 3540:15 Loop with condition tested first 3550:15 Loop Condition 3560:15 Compare Less Than ( temp bool) 3570:15 'first' ( temp float) 3580:15 direct index ( temp float) 3590:15 'second' ( temp 2-element array of float) 3600:15 Constant: 3610:15 0 (const int) 3620:15 Loop Body 3630:15 add ( temp float) 3640:15 add ( temp float) 3650:15 'first' ( temp float) 3660:15 direct index ( temp float) 3670:15 'second' ( temp 2-element array of float) 3680:15 Constant: 3690:15 1 (const int) 3700:15 'third' ( temp float) 3710:15 Loop Terminal Expression 3720:15 Pre-Increment ( temp float) 3730:15 direct index ( temp float) 3740:15 'second' ( temp 2-element array of float) 3750:15 Constant: 3760:15 1 (const int) 3770:? Sequence 3780:16 Comma ( temp float) 3790:16 Comma ( temp float) 3800:16 Pre-Decrement ( temp float) 3810:16 'ii' ( temp float) 3820:16 Pre-Decrement ( temp float) 3830:16 'ii' ( temp float) 3840:16 Pre-Decrement ( temp float) 3850:16 'ii' ( temp float) 3860:16 Loop with condition tested first 3870:16 No loop condition 3880:16 Loop Body 3890:16 'ii' ( temp float) 3900:2 Function Definition: PixelShaderFunction( ( temp void) 3910:2 Function Parameters: 3920:? Sequence 3930:2 move second child to first child ( temp 4-component vector of float) 3940:? 'input' ( temp 4-component vector of float) 3950:? 'input' (layout( location=0) in 4-component vector of float) 3960:2 move second child to first child ( temp 4-component vector of float) 3970:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 3980:2 Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float) 3990:? 'input' ( temp 4-component vector of float) 4000:? Linker Objects 4010:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 4020:? 'input' (layout( location=0) in 4-component vector of float) 403 404// Module Version 10000 405// Generated by (magic number): 80007 406// Id's are bound by 183 407 408 Capability Shader 409 1: ExtInstImport "GLSL.std.450" 410 MemoryModel Logical GLSL450 411 EntryPoint Fragment 4 "PixelShaderFunction" 176 179 412 ExecutionMode 4 OriginUpperLeft 413 Source HLSL 500 414 Name 4 "PixelShaderFunction" 415 Name 11 "@PixelShaderFunction(vf4;" 416 Name 10 "input" 417 Name 92 "ii" 418 Name 111 "ii" 419 Name 114 "first" 420 Name 116 "second" 421 Name 124 "i" 422 Name 125 "count" 423 Name 138 "first" 424 Name 149 "second" 425 Name 157 "third" 426 Name 174 "input" 427 Name 176 "input" 428 Name 179 "@entryPointOutput" 429 Name 180 "param" 430 Decorate 176(input) Location 0 431 Decorate 179(@entryPointOutput) Location 0 432 2: TypeVoid 433 3: TypeFunction 2 434 6: TypeFloat 32 435 7: TypeVector 6(float) 4 436 8: TypePointer Function 7(fvec4) 437 9: TypeFunction 7(fvec4) 8(ptr) 438 18: 6(float) Constant 1065353216 439 32: TypeBool 440 33: TypeVector 32(bool) 4 441 63: 6(float) Constant 1073741824 442 71: TypeInt 32 0 443 72: 71(int) Constant 0 444 73: TypePointer Function 6(float) 445 90: TypeInt 32 1 446 91: TypePointer Function 90(int) 447 93: 90(int) Constant 4294967295 448 100: 90(int) Constant 3 449 103: 90(int) Constant 2 450 109: 90(int) Constant 1 451 115: 90(int) Constant 0 452 139: 6(float) Constant 0 453 146: 71(int) Constant 2 454 147: TypeArray 6(float) 146 455 148: TypePointer Function 147 456 175: TypePointer Input 7(fvec4) 457 176(input): 175(ptr) Variable Input 458 178: TypePointer Output 7(fvec4) 459179(@entryPointOutput): 178(ptr) Variable Output 4604(PixelShaderFunction): 2 Function None 3 461 5: Label 462 174(input): 8(ptr) Variable Function 463 180(param): 8(ptr) Variable Function 464 177: 7(fvec4) Load 176(input) 465 Store 174(input) 177 466 181: 7(fvec4) Load 174(input) 467 Store 180(param) 181 468 182: 7(fvec4) FunctionCall 11(@PixelShaderFunction(vf4;) 180(param) 469 Store 179(@entryPointOutput) 182 470 Return 471 FunctionEnd 47211(@PixelShaderFunction(vf4;): 7(fvec4) Function None 9 473 10(input): 8(ptr) FunctionParameter 474 12: Label 475 92(ii): 91(ptr) Variable Function 476 111(ii): 73(ptr) Variable Function 477 114(first): 91(ptr) Variable Function 478 116(second): 91(ptr) Variable Function 479 124(i): 91(ptr) Variable Function 480 125(count): 91(ptr) Variable Function 481 138(first): 73(ptr) Variable Function 482 149(second): 148(ptr) Variable Function 483 157(third): 73(ptr) Variable Function 484 Branch 13 485 13: Label 486 LoopMerge 15 16 None 487 Branch 14 488 14: Label 489 Branch 16 490 16: Label 491 Branch 13 492 15: Label 493 17: 7(fvec4) Load 10(input) 494 19: 7(fvec4) CompositeConstruct 18 18 18 18 495 20: 7(fvec4) FAdd 17 19 496 Store 10(input) 20 497 Branch 21 498 21: Label 499 LoopMerge 23 24 None 500 Branch 22 501 22: Label 502 Branch 24 503 24: Label 504 Branch 21 505 23: Label 506 Branch 25 507 25: Label 508 LoopMerge 27 28 Unroll 509 Branch 29 510 29: Label 511 30: 7(fvec4) Load 10(input) 512 31: 7(fvec4) Load 10(input) 513 34: 33(bvec4) FOrdNotEqual 30 31 514 35: 32(bool) Any 34 515 BranchConditional 35 26 27 516 26: Label 517 Branch 28 518 28: Label 519 Branch 25 520 27: Label 521 Branch 36 522 36: Label 523 LoopMerge 38 39 None 524 Branch 40 525 40: Label 526 41: 7(fvec4) Load 10(input) 527 42: 7(fvec4) Load 10(input) 528 43: 33(bvec4) FOrdNotEqual 41 42 529 44: 32(bool) Any 43 530 BranchConditional 44 37 38 531 37: Label 532 45: 7(fvec4) Load 10(input) 533 46: 7(fvec4) FNegate 45 534 ReturnValue 46 535 39: Label 536 Branch 36 537 38: Label 538 48: 7(fvec4) Load 10(input) 539 49: 7(fvec4) CompositeConstruct 18 18 18 18 540 50: 7(fvec4) FSub 48 49 541 Store 10(input) 50 542 Branch 51 543 51: Label 544 LoopMerge 53 54 None 545 Branch 55 546 55: Label 547 56: 7(fvec4) Load 10(input) 548 57: 7(fvec4) Load 10(input) 549 58: 33(bvec4) FOrdNotEqual 56 57 550 59: 32(bool) Any 58 551 BranchConditional 59 52 53 552 52: Label 553 60: 7(fvec4) Load 10(input) 554 61: 7(fvec4) FNegate 60 555 ReturnValue 61 556 54: Label 557 64: 7(fvec4) Load 10(input) 558 65: 7(fvec4) CompositeConstruct 63 63 63 63 559 66: 7(fvec4) FAdd 64 65 560 Store 10(input) 66 561 Branch 51 562 53: Label 563 Branch 67 564 67: Label 565 LoopMerge 69 70 None 566 Branch 68 567 68: Label 568 74: 73(ptr) AccessChain 10(input) 72 569 75: 6(float) Load 74 570 76: 32(bool) FOrdGreaterThan 75 63 571 SelectionMerge 78 None 572 BranchConditional 76 77 78 573 77: Label 574 Branch 69 575 78: Label 576 Branch 70 577 70: Label 578 Branch 67 579 69: Label 580 Branch 80 581 80: Label 582 LoopMerge 82 83 None 583 Branch 81 584 81: Label 585 84: 73(ptr) AccessChain 10(input) 72 586 85: 6(float) Load 84 587 86: 32(bool) FOrdGreaterThan 85 63 588 SelectionMerge 88 None 589 BranchConditional 86 87 88 590 87: Label 591 Branch 83 592 88: Label 593 Branch 83 594 83: Label 595 Branch 80 596 82: Label 597 Store 92(ii) 93 598 Branch 94 599 94: Label 600 LoopMerge 96 97 None 601 Branch 98 602 98: Label 603 99: 90(int) Load 92(ii) 604 101: 32(bool) SLessThan 99 100 605 BranchConditional 101 95 96 606 95: Label 607 102: 90(int) Load 92(ii) 608 104: 32(bool) IEqual 102 103 609 SelectionMerge 106 None 610 BranchConditional 104 105 106 611 105: Label 612 Branch 97 613 106: Label 614 Branch 97 615 97: Label 616 108: 90(int) Load 92(ii) 617 110: 90(int) IAdd 108 109 618 Store 92(ii) 110 619 Branch 94 620 96: Label 621 112: 6(float) Load 111(ii) 622 113: 6(float) FSub 112 18 623 Store 111(ii) 113 624 Store 114(first) 115 625 Store 116(second) 109 626 Branch 117 627 117: Label 628 LoopMerge 119 120 None 629 Branch 118 630 118: Label 631 121: 90(int) Load 114(first) 632 122: 90(int) Load 116(second) 633 123: 90(int) IAdd 121 122 634 Branch 120 635 120: Label 636 Branch 117 637 119: Label 638 Store 124(i) 115 639 126: 6(float) Load 111(ii) 640 127: 90(int) ConvertFToS 126 641 Store 125(count) 127 642 Branch 128 643 128: Label 644 LoopMerge 130 131 None 645 Branch 132 646 132: Label 647 133: 90(int) Load 124(i) 648 134: 90(int) Load 125(count) 649 135: 32(bool) SLessThan 133 134 650 BranchConditional 135 129 130 651 129: Label 652 Branch 131 653 131: Label 654 136: 90(int) Load 124(i) 655 137: 90(int) IAdd 136 109 656 Store 124(i) 137 657 Branch 128 658 130: Label 659 Store 138(first) 139 660 Branch 140 661 140: Label 662 LoopMerge 142 143 None 663 Branch 144 664 144: Label 665 145: 6(float) Load 138(first) 666 150: 73(ptr) AccessChain 149(second) 115 667 151: 6(float) Load 150 668 152: 32(bool) FOrdLessThan 145 151 669 BranchConditional 152 141 142 670 141: Label 671 153: 6(float) Load 138(first) 672 154: 73(ptr) AccessChain 149(second) 109 673 155: 6(float) Load 154 674 156: 6(float) FAdd 153 155 675 158: 6(float) Load 157(third) 676 159: 6(float) FAdd 156 158 677 Branch 143 678 143: Label 679 160: 73(ptr) AccessChain 149(second) 109 680 161: 6(float) Load 160 681 162: 6(float) FAdd 161 18 682 Store 160 162 683 Branch 140 684 142: Label 685 163: 6(float) Load 111(ii) 686 164: 6(float) FSub 163 18 687 Store 111(ii) 164 688 165: 6(float) Load 111(ii) 689 166: 6(float) FSub 165 18 690 Store 111(ii) 166 691 167: 6(float) Load 111(ii) 692 168: 6(float) FSub 167 18 693 Store 111(ii) 168 694 Branch 169 695 169: Label 696 LoopMerge 171 172 None 697 Branch 170 698 170: Label 699 Branch 172 700 172: Label 701 Branch 169 702 171: Label 703 173: 7(fvec4) Undef 704 ReturnValue 173 705 FunctionEnd 706