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

                              Capability Shader
                              Capability CapabilityWorkgroupMemoryExplicitLayoutKHR
                              Extension  "SPV_KHR_workgroup_memory_explicit_layout"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main" 9 16
                              ExecutionMode 4 LocalSize 8 1 1
                              Source GLSL 430
                              SourceExtension  "GL_EXT_shared_memory_block"
                              Name 4  "main"
                              Name 7  "first"
                              MemberName 7(first) 0  "a"
                              Name 9  ""
                              Name 14  "second"
                              MemberName 14(second) 0  "b"
                              Name 16  ""
                              MemberDecorate 7(first) 0 Offset 0
                              Decorate 7(first) Block
                              MemberDecorate 14(second) 0 Offset 0
                              Decorate 14(second) Block
                              Decorate 23 BuiltIn WorkgroupSize
                              Decorate 9 Aliased
                              Decorate 16 Aliased
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
        7(first):             TypeStruct 6(int)
               8:             TypePointer Workgroup 7(first)
               9:      8(ptr) Variable Workgroup
              10:      6(int) Constant 0
              11:      6(int) Constant 2
              12:             TypePointer Workgroup 6(int)
      14(second):             TypeStruct 6(int)
              15:             TypePointer Workgroup 14(second)
              16:     15(ptr) Variable Workgroup
              17:      6(int) Constant 3
              19:             TypeInt 32 0
              20:             TypeVector 19(int) 3
              21:     19(int) Constant 8
              22:     19(int) Constant 1
              23:   20(ivec3) ConstantComposite 21 22 22
         4(main):           2 Function None 3
               5:             Label
              13:     12(ptr) AccessChain 9 10
                              Store 13 11
              18:     12(ptr) AccessChain 16 10
                              Store 18 17
                              Return
                              FunctionEnd
