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 unsized 1-element array of uint64_t)
0:6            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element 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 unsized 1-element array of uint64_t)
0:7            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element 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 unsized 1-element array of uint64_t)
0:8            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element 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 unsized 1-element array of uint64_t)
0:9            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element 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 unsized 1-element 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 unsized 1-element array of uint64_t)
0:6            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element 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 unsized 1-element array of uint64_t)
0:7            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element 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 unsized 1-element array of uint64_t)
0:8            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element 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 unsized 1-element array of uint64_t)
0:9            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element 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 unsized 1-element array of uint64_t @data})
0:?     'dti' ( in 3-component vector of uint GlobalInvocationID)

// Module Version 10300
// Generated by (magic number): 8000a
// 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 17(data) Binding 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(int64_t)
        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(int64_t) 4
              35:             TypePointer Uniform 13(int64_t)
              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(i64vec4) UConvert 31
              34: 13(int64_t) 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(i64vec4) UConvert 44
              46: 13(int64_t) 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(i64vec4) UConvert 55
              57: 13(int64_t) 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(i64vec4) UConvert 64
              66: 13(int64_t) CompositeExtract 65 0
              67:     35(ptr) AccessChain 17(data) 19 60
                              Store 67 66
                              Return
                              FunctionEnd
