hlsl.forLoop.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:2  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2    Function Parameters: 
0:2      'input' (layout(location=0 ) in 4-component vector of float)
0:?     Sequence
0:?       Sequence
0:3        Loop with condition tested first
0:3          No loop condition
0:3          No loop body
0:4      Sequence
0:4        Pre-Increment (temp 4-component vector of float)
0:4          'input' (layout(location=0 ) in 4-component vector of float)
0:4        Loop with condition tested first
0:4          No loop condition
0:4          No loop body
0:?       Sequence
0:5        Loop with condition tested first
0:5          Loop Condition
0:5          any (temp bool)
0:5            NotEqual (temp 4-component vector of bool)
0:5              'input' (layout(location=0 ) in 4-component vector of float)
0:5              'input' (layout(location=0 ) in 4-component vector of float)
0:5          No loop body
0:?       Sequence
0:6        Loop with condition tested first
0:6          Loop Condition
0:6          any (temp bool)
0:6            NotEqual (temp 4-component vector of bool)
0:6              'input' (layout(location=0 ) in 4-component vector of float)
0:6              'input' (layout(location=0 ) in 4-component vector of float)
0:6          Loop Body
0:?           Sequence
0:6            Sequence
0:6              move second child to first child (temp 4-component vector of float)
0:?                 '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:6                Negate value (temp 4-component vector of float)
0:6                  'input' (layout(location=0 ) in 4-component vector of float)
0:6              Branch: Return
0:7      Sequence
0:7        Pre-Decrement (temp 4-component vector of float)
0:7          'input' (layout(location=0 ) in 4-component vector of float)
0:7        Loop with condition tested first
0:7          Loop Condition
0:7          any (temp bool)
0:7            NotEqual (temp 4-component vector of bool)
0:7              'input' (layout(location=0 ) in 4-component vector of float)
0:7              'input' (layout(location=0 ) in 4-component vector of float)
0:7          Loop Body
0:?           Sequence
0:7            Sequence
0:7              move second child to first child (temp 4-component vector of float)
0:?                 '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:7                Negate value (temp 4-component vector of float)
0:7                  'input' (layout(location=0 ) in 4-component vector of float)
0:7              Branch: Return
0:7          Loop Terminal Expression
0:7          add second child into first child (temp 4-component vector of float)
0:7            'input' (layout(location=0 ) in 4-component vector of float)
0:7            Constant:
0:7              2.000000
0:?       Sequence
0:8        Loop with condition tested first
0:8          No loop condition
0:8          Loop Body
0:8          Test condition and select (temp void)
0:8            Condition
0:8            Compare Greater Than (temp bool)
0:8              direct index (temp float)
0:8                'input' (layout(location=0 ) in 4-component vector of float)
0:8                Constant:
0:8                  0 (const int)
0:8              Constant:
0:8                2.000000
0:8            true case
0:8            Branch: Break
0:?       Sequence
0:9        Loop with condition tested first
0:9          No loop condition
0:9          Loop Body
0:9          Test condition and select (temp void)
0:9            Condition
0:9            Compare Greater Than (temp bool)
0:9              direct index (temp float)
0:9                'input' (layout(location=0 ) in 4-component vector of float)
0:9                Constant:
0:9                  0 (const int)
0:9              Constant:
0:9                2.000000
0:9            true case
0:9            Branch: Continue
0:11      Sequence
0:11        move second child to first child (temp int)
0:11          'ii' (temp int)
0:11          Constant:
0:11            -1 (const int)
0:11        Loop with condition tested first
0:11          Loop Condition
0:11          Compare Less Than (temp bool)
0:11            'ii' (temp int)
0:11            Constant:
0:11              3 (const int)
0:11          Loop Body
0:11          Test condition and select (temp void)
0:11            Condition
0:11            Compare Equal (temp bool)
0:11              'ii' (temp int)
0:11              Constant:
0:11                2 (const int)
0:11            true case
0:11            Branch: Continue
0:11          Loop Terminal Expression
0:11          Pre-Increment (temp int)
0:11            'ii' (temp int)
0:12      Pre-Decrement (temp float)
0:12        'ii' (temp float)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:?     'input' (layout(location=0 ) in 4-component vector of float)


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:2  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
0:2    Function Parameters: 
0:2      'input' (layout(location=0 ) in 4-component vector of float)
0:?     Sequence
0:?       Sequence
0:3        Loop with condition tested first
0:3          No loop condition
0:3          No loop body
0:4      Sequence
0:4        Pre-Increment (temp 4-component vector of float)
0:4          'input' (layout(location=0 ) in 4-component vector of float)
0:4        Loop with condition tested first
0:4          No loop condition
0:4          No loop body
0:?       Sequence
0:5        Loop with condition tested first
0:5          Loop Condition
0:5          any (temp bool)
0:5            NotEqual (temp 4-component vector of bool)
0:5              'input' (layout(location=0 ) in 4-component vector of float)
0:5              'input' (layout(location=0 ) in 4-component vector of float)
0:5          No loop body
0:?       Sequence
0:6        Loop with condition tested first
0:6          Loop Condition
0:6          any (temp bool)
0:6            NotEqual (temp 4-component vector of bool)
0:6              'input' (layout(location=0 ) in 4-component vector of float)
0:6              'input' (layout(location=0 ) in 4-component vector of float)
0:6          Loop Body
0:?           Sequence
0:6            Sequence
0:6              move second child to first child (temp 4-component vector of float)
0:?                 '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:6                Negate value (temp 4-component vector of float)
0:6                  'input' (layout(location=0 ) in 4-component vector of float)
0:6              Branch: Return
0:7      Sequence
0:7        Pre-Decrement (temp 4-component vector of float)
0:7          'input' (layout(location=0 ) in 4-component vector of float)
0:7        Loop with condition tested first
0:7          Loop Condition
0:7          any (temp bool)
0:7            NotEqual (temp 4-component vector of bool)
0:7              'input' (layout(location=0 ) in 4-component vector of float)
0:7              'input' (layout(location=0 ) in 4-component vector of float)
0:7          Loop Body
0:?           Sequence
0:7            Sequence
0:7              move second child to first child (temp 4-component vector of float)
0:?                 '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:7                Negate value (temp 4-component vector of float)
0:7                  'input' (layout(location=0 ) in 4-component vector of float)
0:7              Branch: Return
0:7          Loop Terminal Expression
0:7          add second child into first child (temp 4-component vector of float)
0:7            'input' (layout(location=0 ) in 4-component vector of float)
0:7            Constant:
0:7              2.000000
0:?       Sequence
0:8        Loop with condition tested first
0:8          No loop condition
0:8          Loop Body
0:8          Test condition and select (temp void)
0:8            Condition
0:8            Compare Greater Than (temp bool)
0:8              direct index (temp float)
0:8                'input' (layout(location=0 ) in 4-component vector of float)
0:8                Constant:
0:8                  0 (const int)
0:8              Constant:
0:8                2.000000
0:8            true case
0:8            Branch: Break
0:?       Sequence
0:9        Loop with condition tested first
0:9          No loop condition
0:9          Loop Body
0:9          Test condition and select (temp void)
0:9            Condition
0:9            Compare Greater Than (temp bool)
0:9              direct index (temp float)
0:9                'input' (layout(location=0 ) in 4-component vector of float)
0:9                Constant:
0:9                  0 (const int)
0:9              Constant:
0:9                2.000000
0:9            true case
0:9            Branch: Continue
0:11      Sequence
0:11        move second child to first child (temp int)
0:11          'ii' (temp int)
0:11          Constant:
0:11            -1 (const int)
0:11        Loop with condition tested first
0:11          Loop Condition
0:11          Compare Less Than (temp bool)
0:11            'ii' (temp int)
0:11            Constant:
0:11              3 (const int)
0:11          Loop Body
0:11          Test condition and select (temp void)
0:11            Condition
0:11            Compare Equal (temp bool)
0:11              'ii' (temp int)
0:11              Constant:
0:11                2 (const int)
0:11            true case
0:11            Branch: Continue
0:11          Loop Terminal Expression
0:11          Pre-Increment (temp int)
0:11            'ii' (temp int)
0:12      Pre-Decrement (temp float)
0:12        'ii' (temp float)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:?     'input' (layout(location=0 ) in 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 114

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 13 43
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "PixelShaderFunction"
                              Name 13  "input"
                              Name 43  "@entryPointOutput"
                              Name 91  "ii"
                              Name 111  "ii"
                              Decorate 13(input) Location 0
                              Decorate 43(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
              10:             TypeFloat 32
              11:             TypeVector 10(float) 4
              12:             TypePointer Input 11(fvec4)
       13(input):     12(ptr) Variable Input
              15:   10(float) Constant 1065353216
              29:             TypeBool
              30:             TypeVector 29(bool) 4
              42:             TypePointer Output 11(fvec4)
43(@entryPointOutput):     42(ptr) Variable Output
              62:   10(float) Constant 1073741824
              70:             TypeInt 32 0
              71:     70(int) Constant 0
              72:             TypePointer Input 10(float)
              89:             TypeInt 32 1
              90:             TypePointer Function 89(int)
              92:     89(int) Constant 4294967295
              99:     89(int) Constant 3
             102:     89(int) Constant 2
             108:     89(int) Constant 1
             110:             TypePointer Function 10(float)
4(PixelShaderFunction):           2 Function None 3
               5:             Label
          91(ii):     90(ptr) Variable Function
         111(ii):    110(ptr) Variable Function
                              Branch 6
               6:             Label
                              LoopMerge 8 9 None
                              Branch 7
               7:             Label
                              Branch 9
               9:             Label
                              Branch 6
               8:             Label
              14:   11(fvec4) Load 13(input)
              16:   11(fvec4) CompositeConstruct 15 15 15 15
              17:   11(fvec4) FAdd 14 16
                              Store 13(input) 17
                              Branch 18
              18:             Label
                              LoopMerge 20 21 None
                              Branch 19
              19:             Label
                              Branch 21
              21:             Label
                              Branch 18
              20:             Label
                              Branch 22
              22:             Label
                              LoopMerge 24 25 None
                              Branch 26
              26:             Label
              27:   11(fvec4) Load 13(input)
              28:   11(fvec4) Load 13(input)
              31:   30(bvec4) FOrdNotEqual 27 28
              32:    29(bool) Any 31
                              BranchConditional 32 23 24
              23:               Label
                                Branch 25
              25:               Label
                                Branch 22
              24:             Label
                              Branch 33
              33:             Label
                              LoopMerge 35 36 None
                              Branch 37
              37:             Label
              38:   11(fvec4) Load 13(input)
              39:   11(fvec4) Load 13(input)
              40:   30(bvec4) FOrdNotEqual 38 39
              41:    29(bool) Any 40
                              BranchConditional 41 34 35
              34:               Label
              44:   11(fvec4)   Load 13(input)
              45:   11(fvec4)   FNegate 44
                                Store 43(@entryPointOutput) 45
                                Return
              36:               Label
                                Branch 33
              35:             Label
              47:   11(fvec4) Load 13(input)
              48:   11(fvec4) CompositeConstruct 15 15 15 15
              49:   11(fvec4) FSub 47 48
                              Store 13(input) 49
                              Branch 50
              50:             Label
                              LoopMerge 52 53 None
                              Branch 54
              54:             Label
              55:   11(fvec4) Load 13(input)
              56:   11(fvec4) Load 13(input)
              57:   30(bvec4) FOrdNotEqual 55 56
              58:    29(bool) Any 57
                              BranchConditional 58 51 52
              51:               Label
              59:   11(fvec4)   Load 13(input)
              60:   11(fvec4)   FNegate 59
                                Store 43(@entryPointOutput) 60
                                Return
              53:               Label
              63:   11(fvec4)   Load 13(input)
              64:   11(fvec4)   CompositeConstruct 62 62 62 62
              65:   11(fvec4)   FAdd 63 64
                                Store 13(input) 65
                                Branch 50
              52:             Label
                              Branch 66
              66:             Label
                              LoopMerge 68 69 None
                              Branch 67
              67:             Label
              73:     72(ptr) AccessChain 13(input) 71
              74:   10(float) Load 73
              75:    29(bool) FOrdGreaterThan 74 62
                              SelectionMerge 77 None
                              BranchConditional 75 76 77
              76:               Label
                                Branch 68
              77:             Label
                              Branch 69
              69:             Label
                              Branch 66
              68:             Label
                              Branch 79
              79:             Label
                              LoopMerge 81 82 None
                              Branch 80
              80:             Label
              83:     72(ptr) AccessChain 13(input) 71
              84:   10(float) Load 83
              85:    29(bool) FOrdGreaterThan 84 62
                              SelectionMerge 87 None
                              BranchConditional 85 86 87
              86:               Label
                                Branch 82
              87:             Label
                              Branch 82
              82:             Label
                              Branch 79
              81:             Label
                              Store 91(ii) 92
                              Branch 93
              93:             Label
                              LoopMerge 95 96 None
                              Branch 97
              97:             Label
              98:     89(int) Load 91(ii)
             100:    29(bool) SLessThan 98 99
                              BranchConditional 100 94 95
              94:               Label
             101:     89(int)   Load 91(ii)
             103:    29(bool)   IEqual 101 102
                                SelectionMerge 105 None
                                BranchConditional 103 104 105
             104:                 Label
                                  Branch 96
             105:               Label
                                Branch 96
              96:               Label
             107:     89(int)   Load 91(ii)
             109:     89(int)   IAdd 107 108
                                Store 91(ii) 109
                                Branch 93
              95:             Label
             112:   10(float) Load 111(ii)
             113:   10(float) FSub 112 15
                              Store 111(ii) 113
                              Return
                              FunctionEnd
