spv.WorkgroupMemoryExplicitLayout.std430.comp
// Module Version 10400
// Generated by (magic number): 8000a
// Id's are bound by 29

                              Capability Shader
                              Capability CapabilityWorkgroupMemoryExplicitLayoutKHR
                              Extension  "SPV_KHR_workgroup_memory_explicit_layout"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main" 28
                              ExecutionMode 4 LocalSize 8 1 1
                              Source GLSL 430
                              SourceExtension  "GL_EXT_shared_memory_block"
                              Name 4  "main"
                              Name 17  "T"
                              MemberName 17(T) 0  "t"
                              Name 24  "S"
                              MemberName 24(S) 0  "f"
                              MemberName 24(S) 1  "v2"
                              MemberName 24(S) 2  "v3"
                              MemberName 24(S) 3  "v4"
                              MemberName 24(S) 4  "t"
                              MemberName 24(S) 5  "f_array"
                              MemberName 24(S) 6  "v2_array"
                              MemberName 24(S) 7  "v3_array"
                              MemberName 24(S) 8  "v4_array"
                              MemberName 24(S) 9  "t_array"
                              Name 26  "Block"
                              MemberName 26(Block) 0  "s"
                              MemberName 26(Block) 1  "s_array"
                              Name 28  ""
                              Decorate 10 BuiltIn WorkgroupSize
                              Decorate 16 ArrayStride 4
                              MemberDecorate 17(T) 0 Offset 0
                              Decorate 19 ArrayStride 4
                              Decorate 20 ArrayStride 8
                              Decorate 21 ArrayStride 16
                              Decorate 22 ArrayStride 16
                              Decorate 23 ArrayStride 12
                              MemberDecorate 24(S) 0 Offset 0
                              MemberDecorate 24(S) 1 Offset 8
                              MemberDecorate 24(S) 2 Offset 16
                              MemberDecorate 24(S) 3 Offset 32
                              MemberDecorate 24(S) 4 Offset 48
                              MemberDecorate 24(S) 5 Offset 60
                              MemberDecorate 24(S) 6 Offset 88
                              MemberDecorate 24(S) 7 Offset 144
                              MemberDecorate 24(S) 8 Offset 240
                              MemberDecorate 24(S) 9 Offset 336
                              Decorate 25 ArrayStride 416
                              MemberDecorate 26(Block) 0 Offset 0
                              MemberDecorate 26(Block) 1 Offset 416
                              Decorate 26(Block) Block
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypeVector 6(int) 3
               8:      6(int) Constant 8
               9:      6(int) Constant 1
              10:    7(ivec3) ConstantComposite 8 9 9
              11:             TypeFloat 32
              12:             TypeVector 11(float) 2
              13:             TypeVector 11(float) 3
              14:             TypeVector 11(float) 4
              15:      6(int) Constant 3
              16:             TypeArray 11(float) 15
           17(T):             TypeStruct 16
              18:      6(int) Constant 6
              19:             TypeArray 11(float) 18
              20:             TypeArray 12(fvec2) 18
              21:             TypeArray 13(fvec3) 18
              22:             TypeArray 14(fvec4) 18
              23:             TypeArray 17(T) 18
           24(S):             TypeStruct 11(float) 12(fvec2) 13(fvec3) 14(fvec4) 17(T) 19 20 21 22 23
              25:             TypeArray 24(S) 18
       26(Block):             TypeStruct 24(S) 25
              27:             TypePointer Workgroup 26(Block)
              28:     27(ptr) Variable Workgroup
         4(main):           2 Function None 3
               5:             Label
                              Return
                              FunctionEnd
