hlsl.doLoop.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:2  Function Definition: @PixelShaderFunction(f1; ( temp 4-component vector of float)
0:2    Function Parameters: 
0:2      'input' ( in float)
0:?     Sequence
0:3      Loop with condition not tested first: Unroll
0:3        Loop Condition
0:3        Constant:
0:3          false (const bool)
0:3        No loop body
0:4      Loop with condition not tested first: Unroll
0:4        Loop Condition
0:4        Constant:
0:4          false (const bool)
0:4        No loop body
0:5      Loop with condition not tested first
0:5        Loop Condition
0:5        Compare Greater Than ( temp bool)
0:5          'input' ( in float)
0:5          Constant:
0:5            2.000000
0:5        Loop Body
0:?         Sequence
0:5          Branch: Return with expression
0:5            Construct vec4 ( temp 4-component vector of float)
0:5              'input' ( in float)
0:6      Loop with condition not tested first
0:6        Loop Condition
0:6        Compare Less Than ( temp bool)
0:6          'input' ( in float)
0:6          Constant:
0:6            10.000000
0:6        Loop Body
0:6        Pre-Increment ( temp float)
0:6          'input' ( in float)
0:7      Loop with condition not tested first
0:7        Loop Condition
0:7        Compare Less Than ( temp bool)
0:7          Pre-Increment ( temp float)
0:7            'input' ( in float)
0:7          Constant:
0:7            10.000000
0:7        Loop Body
0:7        Loop with condition tested first
0:7          Loop Condition
0:7          Compare Less Than ( temp bool)
0:7            Pre-Increment ( temp float)
0:7              'input' ( in float)
0:7            Constant:
0:7              10.000000
0:7          No loop body
0:8      Branch: Return with expression
0:8        Construct vec4 ( temp 4-component vector of float)
0:8          'input' ( in float)
0:2  Function Definition: PixelShaderFunction( ( temp void)
0:2    Function Parameters: 
0:?     Sequence
0:2      move second child to first child ( temp float)
0:?         'input' ( temp float)
0:?         'input' (layout( location=0) in 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(f1; ( temp 4-component vector of float)
0:?           'input' ( temp float)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'input' (layout( location=0) in float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:2  Function Definition: @PixelShaderFunction(f1; ( temp 4-component vector of float)
0:2    Function Parameters: 
0:2      'input' ( in float)
0:?     Sequence
0:3      Loop with condition not tested first: Unroll
0:3        Loop Condition
0:3        Constant:
0:3          false (const bool)
0:3        No loop body
0:4      Loop with condition not tested first: Unroll
0:4        Loop Condition
0:4        Constant:
0:4          false (const bool)
0:4        No loop body
0:5      Loop with condition not tested first
0:5        Loop Condition
0:5        Compare Greater Than ( temp bool)
0:5          'input' ( in float)
0:5          Constant:
0:5            2.000000
0:5        Loop Body
0:?         Sequence
0:5          Branch: Return with expression
0:5            Construct vec4 ( temp 4-component vector of float)
0:5              'input' ( in float)
0:6      Loop with condition not tested first
0:6        Loop Condition
0:6        Compare Less Than ( temp bool)
0:6          'input' ( in float)
0:6          Constant:
0:6            10.000000
0:6        Loop Body
0:6        Pre-Increment ( temp float)
0:6          'input' ( in float)
0:7      Loop with condition not tested first
0:7        Loop Condition
0:7        Compare Less Than ( temp bool)
0:7          Pre-Increment ( temp float)
0:7            'input' ( in float)
0:7          Constant:
0:7            10.000000
0:7        Loop Body
0:7        Loop with condition tested first
0:7          Loop Condition
0:7          Compare Less Than ( temp bool)
0:7            Pre-Increment ( temp float)
0:7              'input' ( in float)
0:7            Constant:
0:7              10.000000
0:7          No loop body
0:8      Branch: Return with expression
0:8        Construct vec4 ( temp 4-component vector of float)
0:8          'input' ( in float)
0:2  Function Definition: PixelShaderFunction( ( temp void)
0:2    Function Parameters: 
0:?     Sequence
0:2      move second child to first child ( temp float)
0:?         'input' ( temp float)
0:?         'input' (layout( location=0) in 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(f1; ( temp 4-component vector of float)
0:?           'input' ( temp float)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'input' (layout( location=0) in float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 64 67
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "PixelShaderFunction"
                              Name 11  "@PixelShaderFunction(f1;"
                              Name 10  "input"
                              Name 62  "input"
                              Name 64  "input"
                              Name 67  "@entryPointOutput"
                              Name 68  "param"
                              Decorate 64(input) Location 0
                              Decorate 67(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               8:             TypeVector 6(float) 4
               9:             TypeFunction 8(fvec4) 7(ptr)
              17:             TypeBool
              18:    17(bool) ConstantFalse
              31:    6(float) Constant 1073741824
              38:    6(float) Constant 1065353216
              41:    6(float) Constant 1092616192
              63:             TypePointer Input 6(float)
       64(input):     63(ptr) Variable Input
              66:             TypePointer Output 8(fvec4)
67(@entryPointOutput):     66(ptr) Variable Output
4(PixelShaderFunction):           2 Function None 3
               5:             Label
       62(input):      7(ptr) Variable Function
       68(param):      7(ptr) Variable Function
              65:    6(float) Load 64(input)
                              Store 62(input) 65
              69:    6(float) Load 62(input)
                              Store 68(param) 69
              70:    8(fvec4) FunctionCall 11(@PixelShaderFunction(f1;) 68(param)
                              Store 67(@entryPointOutput) 70
                              Return
                              FunctionEnd
11(@PixelShaderFunction(f1;):    8(fvec4) Function None 9
       10(input):      7(ptr) FunctionParameter
              12:             Label
                              Branch 13
              13:             Label
                              LoopMerge 15 16 Unroll 
                              Branch 14
              14:             Label
                              Branch 16
              16:             Label
                              BranchConditional 18 13 15
              15:             Label
                              Branch 19
              19:             Label
                              LoopMerge 21 22 Unroll 
                              Branch 20
              20:             Label
                              Branch 22
              22:             Label
                              BranchConditional 18 19 21
              21:             Label
                              Branch 23
              23:             Label
                              LoopMerge 25 26 None
                              Branch 24
              24:             Label
              27:    6(float) Load 10(input)
              28:    8(fvec4) CompositeConstruct 27 27 27 27
                              ReturnValue 28
              26:             Label
              30:    6(float) Load 10(input)
              32:    17(bool) FOrdGreaterThan 30 31
                              BranchConditional 32 23 25
              25:             Label
                              Branch 33
              33:             Label
                              LoopMerge 35 36 None
                              Branch 34
              34:             Label
              37:    6(float) Load 10(input)
              39:    6(float) FAdd 37 38
                              Store 10(input) 39
                              Branch 36
              36:             Label
              40:    6(float) Load 10(input)
              42:    17(bool) FOrdLessThan 40 41
                              BranchConditional 42 33 35
              35:             Label
                              Branch 43
              43:             Label
                              LoopMerge 45 46 None
                              Branch 44
              44:             Label
                              Branch 47
              47:             Label
                              LoopMerge 49 50 None
                              Branch 51
              51:             Label
              52:    6(float) Load 10(input)
              53:    6(float) FAdd 52 38
                              Store 10(input) 53
              54:    17(bool) FOrdLessThan 53 41
                              BranchConditional 54 48 49
              48:               Label
                                Branch 50
              50:               Label
                                Branch 47
              49:             Label
                              Branch 46
              46:             Label
              55:    6(float) Load 10(input)
              56:    6(float) FAdd 55 38
                              Store 10(input) 56
              57:    17(bool) FOrdLessThan 56 41
                              BranchConditional 57 43 45
              45:             Label
              58:    6(float) Load 10(input)
              59:    8(fvec4) CompositeConstruct 58 58 58 58
                              ReturnValue 59
                              FunctionEnd
