spv.subgroup.vert
// Module Version 10300
// Generated by (magic number): 80005
// Id's are bound by 26

                              Capability Shader
                              Capability GroupNonUniform
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 15 18 20
                              Source GLSL 450
                              SourceExtension  "GL_KHR_shader_subgroup_basic"
                              Name 4  "main"
                              Name 9  "Output"
                              MemberName 9(Output) 0  "result"
                              Name 11  ""
                              Name 15  "gl_VertexIndex"
                              Name 18  "gl_SubgroupSize"
                              Name 20  "gl_SubgroupInvocationID"
                              Decorate 8 ArrayStride 16
                              MemberDecorate 9(Output) 0 Offset 0
                              Decorate 9(Output) BufferBlock
                              Decorate 11 DescriptorSet 0
                              Decorate 11 Binding 0
                              Decorate 15(gl_VertexIndex) BuiltIn VertexIndex
                              Decorate 18(gl_SubgroupSize) RelaxedPrecision
                              Decorate 18(gl_SubgroupSize) BuiltIn SubgroupSize
                              Decorate 19 RelaxedPrecision
                              Decorate 20(gl_SubgroupInvocationID) RelaxedPrecision
                              Decorate 20(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
                              Decorate 21 RelaxedPrecision
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypeVector 6(int) 4
               8:             TypeRuntimeArray 7(ivec4)
       9(Output):             TypeStruct 8
              10:             TypePointer Uniform 9(Output)
              11:     10(ptr) Variable Uniform
              12:             TypeInt 32 1
              13:     12(int) Constant 0
              14:             TypePointer Input 12(int)
15(gl_VertexIndex):     14(ptr) Variable Input
              17:             TypePointer Input 6(int)
18(gl_SubgroupSize):     17(ptr) Variable Input
20(gl_SubgroupInvocationID):     17(ptr) Variable Input
              22:      6(int) Constant 0
              24:             TypePointer Uniform 7(ivec4)
         4(main):           2 Function None 3
               5:             Label
              16:     12(int) Load 15(gl_VertexIndex)
              19:      6(int) Load 18(gl_SubgroupSize)
              21:      6(int) Load 20(gl_SubgroupInvocationID)
              23:    7(ivec4) CompositeConstruct 19 21 22 22
              25:     24(ptr) AccessChain 11 13 16
                              Store 25 23
                              Return
                              FunctionEnd
