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

                              Capability Tessellation
                              Capability GroupNonUniform
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint TessellationControl 4  "main" 15 18 20
                              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_PrimitiveID"
                              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_PrimitiveID) 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
                              Decorate 23 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_PrimitiveID):     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_PrimitiveID)
              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
