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

                              Capability Geometry
                              Capability GroupNonUniform
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Geometry 4  "main" 15 18 20
                              ExecutionMode 4 InputPoints
                              ExecutionMode 4 Invocations 1
                              ExecutionMode 4 OutputPoints
                              ExecutionMode 4 OutputVertices 1
                              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_PrimitiveIDIn"
                              Name 18  "gl_SubgroupSize"
                              Name 20  "gl_SubgroupInvocationID"
                              Decorate 8 ArrayStride 16
                              MemberDecorate 9(Output) 0 Offset 0
                              Decorate 9(Output) Block
                              Decorate 11 DescriptorSet 0
                              Decorate 11 Binding 0
                              Decorate 15(gl_PrimitiveIDIn) BuiltIn PrimitiveId
                              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 StorageBuffer 9(Output)
              11:     10(ptr) Variable StorageBuffer
              12:             TypeInt 32 1
              13:     12(int) Constant 0
              14:             TypePointer Input 12(int)
15(gl_PrimitiveIDIn):     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 StorageBuffer 7(ivec4)
         4(main):           2 Function None 3
               5:             Label
              16:     12(int) Load 15(gl_PrimitiveIDIn)
              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
