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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main" 8 10
                              ExecutionMode 4 LocalSize 8 1 1
                              Source GLSL 430
                              SourceExtension  "GL_EXT_shared_memory_block"
                              Name 4  "main"
                              Name 8  "a"
                              Name 10  "b"
                              Decorate 16 BuiltIn WorkgroupSize
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Workgroup 6(int)
            8(a):      7(ptr) Variable Workgroup
               9:      6(int) Constant 2
           10(b):      7(ptr) Variable Workgroup
              11:      6(int) Constant 3
              12:             TypeInt 32 0
              13:             TypeVector 12(int) 3
              14:     12(int) Constant 8
              15:     12(int) Constant 1
              16:   13(ivec3) ConstantComposite 14 15 15
         4(main):           2 Function None 3
               5:             Label
                              Store 8(a) 9
                              Store 10(b) 11
                              Return
                              FunctionEnd
