hlsl.forLoop.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:14  Function Definition: PixelShaderFunction(vf4; (global 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          Compare Not Equal (temp 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          Compare Not Equal (temp 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          Compare Not Equal (temp 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:?   Linker Objects


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:14  Function Definition: PixelShaderFunction(vf4; (global 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          Compare Not Equal (temp 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          Compare Not Equal (temp 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          Compare Not Equal (temp 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:?   Linker Objects

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 13
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "PixelShaderFunction"
                              Name 13  "input"
                              Name 89  "ii"
                              Name 109  "ii"
               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
              60:   10(float) Constant 1073741824
              68:             TypeInt 32 0
              69:     68(int) Constant 0
              70:             TypePointer Input 10(float)
              87:             TypeInt 32 1
              88:             TypePointer Function 87(int)
              90:     87(int) Constant 4294967295
              97:     87(int) Constant 3
             100:     87(int) Constant 2
             106:     87(int) Constant 1
             108:             TypePointer Function 10(float)
4(PixelShaderFunction):           2 Function None 3
               5:             Label
          89(ii):     88(ptr) Variable Function
         109(ii):    108(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
              42:   11(fvec4)   Load 13(input)
              43:   11(fvec4)   FNegate 42
                                ReturnValue 43
              36:               Label
                                Branch 33
              35:             Label
              45:   11(fvec4) Load 13(input)
              46:   11(fvec4) CompositeConstruct 15 15 15 15
              47:   11(fvec4) FSub 45 46
                              Store 13(input) 47
                              Branch 48
              48:             Label
                              LoopMerge 50 51 None
                              Branch 52
              52:             Label
              53:   11(fvec4) Load 13(input)
              54:   11(fvec4) Load 13(input)
              55:   30(bvec4) FOrdNotEqual 53 54
              56:    29(bool) Any 55
                              BranchConditional 56 49 50
              49:               Label
              57:   11(fvec4)   Load 13(input)
              58:   11(fvec4)   FNegate 57
                                ReturnValue 58
              51:               Label
              61:   11(fvec4)   Load 13(input)
              62:   11(fvec4)   CompositeConstruct 60 60 60 60
              63:   11(fvec4)   FAdd 61 62
                                Store 13(input) 63
                                Branch 48
              50:             Label
                              Branch 64
              64:             Label
                              LoopMerge 66 67 None
                              Branch 65
              65:             Label
              71:     70(ptr) AccessChain 13(input) 69
              72:   10(float) Load 71
              73:    29(bool) FOrdGreaterThan 72 60
                              SelectionMerge 75 None
                              BranchConditional 73 74 75
              74:               Label
                                Branch 66
              75:             Label
                              Branch 67
              67:             Label
                              Branch 64
              66:             Label
                              Branch 77
              77:             Label
                              LoopMerge 79 80 None
                              Branch 78
              78:             Label
              81:     70(ptr) AccessChain 13(input) 69
              82:   10(float) Load 81
              83:    29(bool) FOrdGreaterThan 82 60
                              SelectionMerge 85 None
                              BranchConditional 83 84 85
              84:               Label
                                Branch 80
              85:             Label
                              Branch 80
              80:             Label
                              Branch 77
              79:             Label
                              Store 89(ii) 90
                              Branch 91
              91:             Label
                              LoopMerge 93 94 None
                              Branch 95
              95:             Label
              96:     87(int) Load 89(ii)
              98:    29(bool) SLessThan 96 97
                              BranchConditional 98 92 93
              92:               Label
              99:     87(int)   Load 89(ii)
             101:    29(bool)   IEqual 99 100
                                SelectionMerge 103 None
                                BranchConditional 101 102 103
             102:                 Label
                                  Branch 94
             103:               Label
                                Branch 94
              94:               Label
             105:     87(int)   Load 89(ii)
             107:     87(int)   IAdd 105 106
                                Store 89(ii) 107
                                Branch 91
              93:             Label
             110:   10(float) Load 109(ii)
             111:   10(float) FSub 110 15
                              Store 109(ii) 111
                              Return
                              FunctionEnd
