hlsl.forLoop.frag
Shader version: 500
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' ( 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' ( 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' ( in 4-component vector of float)
0:5              'input' ( 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' ( in 4-component vector of float)
0:6              'input' ( in 4-component vector of float)
0:6          Loop Body
0:?           Sequence
0:6            Branch: Return with expression
0:6              Negate value ( temp 4-component vector of float)
0:6                'input' ( in 4-component vector of float)
0:7      Sequence
0:7        Pre-Decrement ( temp 4-component vector of float)
0:7          'input' ( 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' ( in 4-component vector of float)
0:7              'input' ( in 4-component vector of float)
0:7          Loop Body
0:?           Sequence
0:7            Branch: Return with expression
0:7              Negate value ( temp 4-component vector of float)
0:7                'input' ( in 4-component vector of float)
0:7          Loop Terminal Expression
0:7          add second child into first child ( temp 4-component vector of float)
0:7            'input' ( 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' ( 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' ( 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:2  Function Definition: PixelShaderFunction( ( temp void)
0:2    Function Parameters: 
0:?     Sequence
0:2      move second child to first child ( temp 4-component vector of float)
0:?         'input' ( temp 4-component vector of float)
0:?         'input' (layout( location=0) in 4-component vector of float)
0:2      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:2        Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:?           'input' ( temp 4-component vector of 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: 500
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' ( 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' ( 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' ( in 4-component vector of float)
0:5              'input' ( 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' ( in 4-component vector of float)
0:6              'input' ( in 4-component vector of float)
0:6          Loop Body
0:?           Sequence
0:6            Branch: Return with expression
0:6              Negate value ( temp 4-component vector of float)
0:6                'input' ( in 4-component vector of float)
0:7      Sequence
0:7        Pre-Decrement ( temp 4-component vector of float)
0:7          'input' ( 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' ( in 4-component vector of float)
0:7              'input' ( in 4-component vector of float)
0:7          Loop Body
0:?           Sequence
0:7            Branch: Return with expression
0:7              Negate value ( temp 4-component vector of float)
0:7                'input' ( in 4-component vector of float)
0:7          Loop Terminal Expression
0:7          add second child into first child ( temp 4-component vector of float)
0:7            'input' ( 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' ( 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' ( 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:2  Function Definition: PixelShaderFunction( ( temp void)
0:2    Function Parameters: 
0:?     Sequence
0:2      move second child to first child ( temp 4-component vector of float)
0:?         'input' ( temp 4-component vector of float)
0:?         'input' (layout( location=0) in 4-component vector of float)
0:2      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:2        Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:?           'input' ( temp 4-component vector of 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 124

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