hlsl.basic.comp
Shader version: 500
local_size = (1, 1, 1)
0:? Sequence
0:4  Function Definition: @main(i1;i1; ( temp void)
0:4    Function Parameters: 
0:4      'dti' ( in int)
0:4      'gti' ( in int)
0:?     Sequence
0:5      subtract ( temp int)
0:5        'dti' ( in int)
0:5        'gti' ( in int)
0:4  Function Definition: main( ( temp void)
0:4    Function Parameters: 
0:?     Sequence
0:4      move second child to first child ( temp int)
0:?         'dti' ( temp int)
0:?         'dti' ( in int GlobalInvocationID)
0:4      move second child to first child ( temp int)
0:?         'gti' ( temp int)
0:?         'gti' ( in int LocalInvocationID)
0:4      Function Call: @main(i1;i1; ( temp void)
0:?         'dti' ( temp int)
0:?         'gti' ( temp int)
0:?   Linker Objects
0:?     'a' ( shared 100-element array of 4-component vector of float)
0:?     'dti' ( in int GlobalInvocationID)
0:?     'gti' ( in int LocalInvocationID)


Linked compute stage:


Shader version: 500
local_size = (1, 1, 1)
0:? Sequence
0:4  Function Definition: @main(i1;i1; ( temp void)
0:4    Function Parameters: 
0:4      'dti' ( in int)
0:4      'gti' ( in int)
0:?     Sequence
0:5      subtract ( temp int)
0:5        'dti' ( in int)
0:5        'gti' ( in int)
0:4  Function Definition: main( ( temp void)
0:4    Function Parameters: 
0:?     Sequence
0:4      move second child to first child ( temp int)
0:?         'dti' ( temp int)
0:?         'dti' ( in int GlobalInvocationID)
0:4      move second child to first child ( temp int)
0:?         'gti' ( temp int)
0:?         'gti' ( in int LocalInvocationID)
0:4      Function Call: @main(i1;i1; ( temp void)
0:?         'dti' ( temp int)
0:?         'gti' ( temp int)
0:?   Linker Objects
0:?     'a' ( shared 100-element array of 4-component vector of float)
0:?     'dti' ( in int GlobalInvocationID)
0:?     'gti' ( in int LocalInvocationID)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main" 18 21
                              ExecutionMode 4 LocalSize 1 1 1
                              Source HLSL 500
                              Name 4  "main"
                              Name 11  "@main(i1;i1;"
                              Name 9  "dti"
                              Name 10  "gti"
                              Name 16  "dti"
                              Name 18  "dti"
                              Name 20  "gti"
                              Name 21  "gti"
                              Name 23  "param"
                              Name 25  "param"
                              Name 34  "a"
                              Decorate 18(dti) BuiltIn GlobalInvocationId
                              Decorate 21(gti) BuiltIn LocalInvocationId
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Function 6(int)
               8:             TypeFunction 2 7(ptr) 7(ptr)
              17:             TypePointer Input 6(int)
         18(dti):     17(ptr) Variable Input
         21(gti):     17(ptr) Variable Input
              28:             TypeFloat 32
              29:             TypeVector 28(float) 4
              30:             TypeInt 32 0
              31:     30(int) Constant 100
              32:             TypeArray 29(fvec4) 31
              33:             TypePointer Workgroup 32
           34(a):     33(ptr) Variable Workgroup
         4(main):           2 Function None 3
               5:             Label
         16(dti):      7(ptr) Variable Function
         20(gti):      7(ptr) Variable Function
       23(param):      7(ptr) Variable Function
       25(param):      7(ptr) Variable Function
              19:      6(int) Load 18(dti)
                              Store 16(dti) 19
              22:      6(int) Load 21(gti)
                              Store 20(gti) 22
              24:      6(int) Load 16(dti)
                              Store 23(param) 24
              26:      6(int) Load 20(gti)
                              Store 25(param) 26
              27:           2 FunctionCall 11(@main(i1;i1;) 23(param) 25(param)
                              Return
                              FunctionEnd
11(@main(i1;i1;):           2 Function None 8
          9(dti):      7(ptr) FunctionParameter
         10(gti):      7(ptr) FunctionParameter
              12:             Label
              13:      6(int) Load 9(dti)
              14:      6(int) Load 10(gti)
              15:      6(int) ISub 13 14
                              Return
                              FunctionEnd
