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
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
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
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
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): 80002
// 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
