hlsl.wavevote.comp
Shader version: 500
local_size = (32, 16, 1)
0:? Sequence
0:5  Function Definition: @CSMain(vu3; ( temp void)
0:5    Function Parameters: 
0:5      'dti' ( in 3-component vector of uint)
0:?     Sequence
0:6      move second child to first child ( temp uint64_t)
0:6        indirect index (layout( row_major std430) buffer uint64_t)
0:6          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:6            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:6            Constant:
0:6              0 (const uint)
0:6          direct index ( temp uint)
0:6            'dti' ( in 3-component vector of uint)
0:6            Constant:
0:6              0 (const int)
0:6        Construct uint64 (layout( row_major std430) buffer uint64_t)
0:6          Convert uint to uint64 ( temp 4-component vector of uint64_t)
0:6            subgroupBallot ( temp 4-component vector of uint)
0:6              subgroupAny ( temp bool)
0:6                Compare Equal ( temp bool)
0:6                  direct index ( temp uint)
0:6                    'dti' ( in 3-component vector of uint)
0:6                    Constant:
0:6                      0 (const int)
0:6                  Constant:
0:6                    0 (const uint)
0:7      move second child to first child ( temp uint64_t)
0:7        indirect index (layout( row_major std430) buffer uint64_t)
0:7          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:7            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:7            Constant:
0:7              0 (const uint)
0:7          direct index ( temp uint)
0:7            'dti' ( in 3-component vector of uint)
0:7            Constant:
0:7              1 (const int)
0:7        Construct uint64 (layout( row_major std430) buffer uint64_t)
0:7          Convert uint to uint64 ( temp 4-component vector of uint64_t)
0:7            subgroupBallot ( temp 4-component vector of uint)
0:7              subgroupAll ( temp bool)
0:7                Compare Equal ( temp bool)
0:7                  direct index ( temp uint)
0:7                    'dti' ( in 3-component vector of uint)
0:7                    Constant:
0:7                      1 (const int)
0:7                  Constant:
0:7                    0 (const uint)
0:8      move second child to first child ( temp uint64_t)
0:8        indirect index (layout( row_major std430) buffer uint64_t)
0:8          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:8            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:8            Constant:
0:8              0 (const uint)
0:8          direct index ( temp uint)
0:8            'dti' ( in 3-component vector of uint)
0:8            Constant:
0:8              2 (const int)
0:8        Construct uint64 (layout( row_major std430) buffer uint64_t)
0:8          Convert uint to uint64 ( temp 4-component vector of uint64_t)
0:8            subgroupBallot ( temp 4-component vector of uint)
0:8              subgroupAllEqual ( temp bool)
0:8                Compare Equal ( temp bool)
0:8                  direct index ( temp uint)
0:8                    'dti' ( in 3-component vector of uint)
0:8                    Constant:
0:8                      2 (const int)
0:8                  Constant:
0:8                    0 (const uint)
0:9      move second child to first child ( temp uint64_t)
0:9        indirect index (layout( row_major std430) buffer uint64_t)
0:9          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:9            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:9            Constant:
0:9              0 (const uint)
0:9          direct index ( temp uint)
0:9            'dti' ( in 3-component vector of uint)
0:9            Constant:
0:9              2 (const int)
0:9        Construct uint64 (layout( row_major std430) buffer uint64_t)
0:9          Convert uint to uint64 ( temp 4-component vector of uint64_t)
0:9            subgroupBallot ( temp 4-component vector of uint)
0:9              subgroupAllEqual ( temp bool)
0:9                direct index ( temp uint)
0:9                  'dti' ( in 3-component vector of uint)
0:9                  Constant:
0:9                    2 (const int)
0:5  Function Definition: CSMain( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:5      move second child to first child ( temp 3-component vector of uint)
0:?         'dti' ( temp 3-component vector of uint)
0:?         'dti' ( in 3-component vector of uint GlobalInvocationID)
0:5      Function Call: @CSMain(vu3; ( temp void)
0:?         'dti' ( temp 3-component vector of uint)
0:?   Linker Objects
0:?     'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:?     'dti' ( in 3-component vector of uint GlobalInvocationID)


Linked compute stage:


Shader version: 500
local_size = (32, 16, 1)
0:? Sequence
0:5  Function Definition: @CSMain(vu3; ( temp void)
0:5    Function Parameters: 
0:5      'dti' ( in 3-component vector of uint)
0:?     Sequence
0:6      move second child to first child ( temp uint64_t)
0:6        indirect index (layout( row_major std430) buffer uint64_t)
0:6          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:6            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:6            Constant:
0:6              0 (const uint)
0:6          direct index ( temp uint)
0:6            'dti' ( in 3-component vector of uint)
0:6            Constant:
0:6              0 (const int)
0:6        Construct uint64 (layout( row_major std430) buffer uint64_t)
0:6          Convert uint to uint64 ( temp 4-component vector of uint64_t)
0:6            subgroupBallot ( temp 4-component vector of uint)
0:6              subgroupAny ( temp bool)
0:6                Compare Equal ( temp bool)
0:6                  direct index ( temp uint)
0:6                    'dti' ( in 3-component vector of uint)
0:6                    Constant:
0:6                      0 (const int)
0:6                  Constant:
0:6                    0 (const uint)
0:7      move second child to first child ( temp uint64_t)
0:7        indirect index (layout( row_major std430) buffer uint64_t)
0:7          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:7            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:7            Constant:
0:7              0 (const uint)
0:7          direct index ( temp uint)
0:7            'dti' ( in 3-component vector of uint)
0:7            Constant:
0:7              1 (const int)
0:7        Construct uint64 (layout( row_major std430) buffer uint64_t)
0:7          Convert uint to uint64 ( temp 4-component vector of uint64_t)
0:7            subgroupBallot ( temp 4-component vector of uint)
0:7              subgroupAll ( temp bool)
0:7                Compare Equal ( temp bool)
0:7                  direct index ( temp uint)
0:7                    'dti' ( in 3-component vector of uint)
0:7                    Constant:
0:7                      1 (const int)
0:7                  Constant:
0:7                    0 (const uint)
0:8      move second child to first child ( temp uint64_t)
0:8        indirect index (layout( row_major std430) buffer uint64_t)
0:8          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:8            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:8            Constant:
0:8              0 (const uint)
0:8          direct index ( temp uint)
0:8            'dti' ( in 3-component vector of uint)
0:8            Constant:
0:8              2 (const int)
0:8        Construct uint64 (layout( row_major std430) buffer uint64_t)
0:8          Convert uint to uint64 ( temp 4-component vector of uint64_t)
0:8            subgroupBallot ( temp 4-component vector of uint)
0:8              subgroupAllEqual ( temp bool)
0:8                Compare Equal ( temp bool)
0:8                  direct index ( temp uint)
0:8                    'dti' ( in 3-component vector of uint)
0:8                    Constant:
0:8                      2 (const int)
0:8                  Constant:
0:8                    0 (const uint)
0:9      move second child to first child ( temp uint64_t)
0:9        indirect index (layout( row_major std430) buffer uint64_t)
0:9          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint64_t)
0:9            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:9            Constant:
0:9              0 (const uint)
0:9          direct index ( temp uint)
0:9            'dti' ( in 3-component vector of uint)
0:9            Constant:
0:9              2 (const int)
0:9        Construct uint64 (layout( row_major std430) buffer uint64_t)
0:9          Convert uint to uint64 ( temp 4-component vector of uint64_t)
0:9            subgroupBallot ( temp 4-component vector of uint)
0:9              subgroupAllEqual ( temp bool)
0:9                direct index ( temp uint)
0:9                  'dti' ( in 3-component vector of uint)
0:9                  Constant:
0:9                    2 (const int)
0:5  Function Definition: CSMain( ( temp void)
0:5    Function Parameters: 
0:?     Sequence
0:5      move second child to first child ( temp 3-component vector of uint)
0:?         'dti' ( temp 3-component vector of uint)
0:?         'dti' ( in 3-component vector of uint GlobalInvocationID)
0:5      Function Call: @CSMain(vu3; ( temp void)
0:?         'dti' ( temp 3-component vector of uint)
0:?   Linker Objects
0:?     'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint64_t @data})
0:?     'dti' ( in 3-component vector of uint GlobalInvocationID)

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

                              Capability Shader
                              Capability Int64
                              Capability GroupNonUniform
                              Capability GroupNonUniformVote
                              Capability GroupNonUniformBallot
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "CSMain" 70
                              ExecutionMode 4 LocalSize 32 16 1
                              Source HLSL 500
                              Name 4  "CSMain"
                              Name 11  "@CSMain(vu3;"
                              Name 10  "dti"
                              Name 15  "data"
                              MemberName 15(data) 0  "@data"
                              Name 17  "data"
                              Name 68  "dti"
                              Name 70  "dti"
                              Name 72  "param"
                              Decorate 14 ArrayStride 8
                              MemberDecorate 15(data) 0 Offset 0
                              Decorate 15(data) BufferBlock
                              Decorate 17(data) DescriptorSet 0
                              Decorate 70(dti) BuiltIn GlobalInvocationId
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypeVector 6(int) 3
               8:             TypePointer Function 7(ivec3)
               9:             TypeFunction 2 8(ptr)
              13:             TypeInt 64 0
              14:             TypeRuntimeArray 13(int)
        15(data):             TypeStruct 14
              16:             TypePointer Uniform 15(data)
        17(data):     16(ptr) Variable Uniform
              18:             TypeInt 32 1
              19:     18(int) Constant 0
              20:      6(int) Constant 0
              21:             TypePointer Function 6(int)
              26:             TypeBool
              28:      6(int) Constant 3
              30:             TypeVector 6(int) 4
              32:             TypeVector 13(int) 4
              35:             TypePointer Uniform 13(int)
              37:      6(int) Constant 1
              48:      6(int) Constant 2
              69:             TypePointer Input 7(ivec3)
         70(dti):     69(ptr) Variable Input
       4(CSMain):           2 Function None 3
               5:             Label
         68(dti):      8(ptr) Variable Function
       72(param):      8(ptr) Variable Function
              71:    7(ivec3) Load 70(dti)
                              Store 68(dti) 71
              73:    7(ivec3) Load 68(dti)
                              Store 72(param) 73
              74:           2 FunctionCall 11(@CSMain(vu3;) 72(param)
                              Return
                              FunctionEnd
11(@CSMain(vu3;):           2 Function None 9
         10(dti):      8(ptr) FunctionParameter
              12:             Label
              22:     21(ptr) AccessChain 10(dti) 20
              23:      6(int) Load 22
              24:     21(ptr) AccessChain 10(dti) 20
              25:      6(int) Load 24
              27:    26(bool) IEqual 25 20
              29:    26(bool) GroupNonUniformAny 28 27
              31:   30(ivec4) GroupNonUniformBallot 28 29
              33:   32(ivec4) UConvert 31
              34:     13(int) CompositeExtract 33 0
              36:     35(ptr) AccessChain 17(data) 19 23
                              Store 36 34
              38:     21(ptr) AccessChain 10(dti) 37
              39:      6(int) Load 38
              40:     21(ptr) AccessChain 10(dti) 37
              41:      6(int) Load 40
              42:    26(bool) IEqual 41 20
              43:    26(bool) GroupNonUniformAll 28 42
              44:   30(ivec4) GroupNonUniformBallot 28 43
              45:   32(ivec4) UConvert 44
              46:     13(int) CompositeExtract 45 0
              47:     35(ptr) AccessChain 17(data) 19 39
                              Store 47 46
              49:     21(ptr) AccessChain 10(dti) 48
              50:      6(int) Load 49
              51:     21(ptr) AccessChain 10(dti) 48
              52:      6(int) Load 51
              53:    26(bool) IEqual 52 20
              54:    26(bool) GroupNonUniformAllEqual 28 53
              55:   30(ivec4) GroupNonUniformBallot 28 54
              56:   32(ivec4) UConvert 55
              57:     13(int) CompositeExtract 56 0
              58:     35(ptr) AccessChain 17(data) 19 50
                              Store 58 57
              59:     21(ptr) AccessChain 10(dti) 48
              60:      6(int) Load 59
              61:     21(ptr) AccessChain 10(dti) 48
              62:      6(int) Load 61
              63:    26(bool) GroupNonUniformAllEqual 28 62
              64:   30(ivec4) GroupNonUniformBallot 28 63
              65:   32(ivec4) UConvert 64
              66:     13(int) CompositeExtract 65 0
              67:     35(ptr) AccessChain 17(data) 19 60
                              Store 67 66
                              Return
                              FunctionEnd
