hlsl.attribute.expression.comp
Shader version: 500
local_size = (4, 6, 8)
0:? Sequence
0:9  Function Definition: @main( ( temp 4-component vector of float)
0:9    Function Parameters: 
0:?     Sequence
0:11      Sequence
0:11        move second child to first child ( temp int)
0:11          'x' ( temp int)
0:11          Constant:
0:11            0 (const int)
0:11        Loop with condition tested first
0:11          Loop Condition
0:11          Compare Less Than ( temp bool)
0:11            'x' ( temp int)
0:11            bound: direct index for structure ( uniform int)
0:11              'anon@0' (layout( row_major std140) uniform block{ uniform int bound})
0:11              Constant:
0:11                0 (const uint)
0:11          No loop body
0:11          Loop Terminal Expression
0:11          Pre-Increment ( temp int)
0:11            'x' ( temp int)
0:14      Branch: Return with expression
0:?         Constant:
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:9  Function Definition: main( ( temp void)
0:9    Function Parameters: 
0:?     Sequence
0:9      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:9        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int bound})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)


Linked compute stage:


Shader version: 500
local_size = (4, 6, 8)
0:? Sequence
0:9  Function Definition: @main( ( temp 4-component vector of float)
0:9    Function Parameters: 
0:?     Sequence
0:11      Sequence
0:11        move second child to first child ( temp int)
0:11          'x' ( temp int)
0:11          Constant:
0:11            0 (const int)
0:11        Loop with condition tested first
0:11          Loop Condition
0:11          Compare Less Than ( temp bool)
0:11            'x' ( temp int)
0:11            bound: direct index for structure ( uniform int)
0:11              'anon@0' (layout( row_major std140) uniform block{ uniform int bound})
0:11              Constant:
0:11                0 (const uint)
0:11          No loop body
0:11          Loop Terminal Expression
0:11          Pre-Increment ( temp int)
0:11            'x' ( temp int)
0:14      Branch: Return with expression
0:?         Constant:
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:9  Function Definition: main( ( temp void)
0:9    Function Parameters: 
0:?     Sequence
0:9      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:9        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int bound})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main" 37
                              ExecutionMode 4 LocalSize 4 6 8
                              Source HLSL 500
                              Name 4  "main"
                              Name 9  "@main("
                              Name 13  "x"
                              Name 21  "$Global"
                              MemberName 21($Global) 0  "bound"
                              Name 23  ""
                              Name 37  "@entryPointOutput"
                              MemberDecorate 21($Global) 0 Offset 0
                              Decorate 21($Global) Block
                              Decorate 23 DescriptorSet 0
                              Decorate 37(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeFunction 7(fvec4)
              11:             TypeInt 32 1
              12:             TypePointer Function 11(int)
              14:     11(int) Constant 0
     21($Global):             TypeStruct 11(int)
              22:             TypePointer Uniform 21($Global)
              23:     22(ptr) Variable Uniform
              24:             TypePointer Uniform 11(int)
              27:             TypeBool
              30:     11(int) Constant 1
              32:    6(float) Constant 0
              33:    7(fvec4) ConstantComposite 32 32 32 32
              36:             TypePointer Output 7(fvec4)
37(@entryPointOutput):     36(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              38:    7(fvec4) FunctionCall 9(@main()
                              Store 37(@entryPointOutput) 38
                              Return
                              FunctionEnd
       9(@main():    7(fvec4) Function None 8
              10:             Label
           13(x):     12(ptr) Variable Function
                              Store 13(x) 14
                              Branch 15
              15:             Label
                              LoopMerge 17 18 Unroll 
                              Branch 19
              19:             Label
              20:     11(int) Load 13(x)
              25:     24(ptr) AccessChain 23 14
              26:     11(int) Load 25
              28:    27(bool) SLessThan 20 26
                              BranchConditional 28 16 17
              16:               Label
                                Branch 18
              18:               Label
              29:     11(int)   Load 13(x)
              31:     11(int)   IAdd 29 30
                                Store 13(x) 31
                                Branch 15
              17:             Label
                              ReturnValue 33
                              FunctionEnd
