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

                              Capability Shader
                              Capability GroupNonUniform
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 9 11 13
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_KHR_shader_subgroup_basic"
                              Name 4  "main"
                              Name 9  "data"
                              Name 11  "gl_SubgroupSize"
                              Name 13  "gl_SubgroupInvocationID"
                              Decorate 9(data) Location 0
                              Decorate 11(gl_SubgroupSize) RelaxedPrecision
                              Decorate 11(gl_SubgroupSize) Flat
                              Decorate 11(gl_SubgroupSize) BuiltIn SubgroupSize
                              Decorate 12 RelaxedPrecision
                              Decorate 13(gl_SubgroupInvocationID) RelaxedPrecision
                              Decorate 13(gl_SubgroupInvocationID) Flat
                              Decorate 13(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
                              Decorate 14 RelaxedPrecision
                              Decorate 16 RelaxedPrecision
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypeVector 6(int) 4
               8:             TypePointer Output 7(ivec4)
         9(data):      8(ptr) Variable Output
              10:             TypePointer Input 6(int)
11(gl_SubgroupSize):     10(ptr) Variable Input
13(gl_SubgroupInvocationID):     10(ptr) Variable Input
              15:      6(int) Constant 0
         4(main):           2 Function None 3
               5:             Label
              12:      6(int) Load 11(gl_SubgroupSize)
              14:      6(int) Load 13(gl_SubgroupInvocationID)
              16:    7(ivec4) CompositeConstruct 12 14 15 15
                              Store 9(data) 16
                              Return
                              FunctionEnd
