spv.1.6.specConstant.comp
// Module Version 10600
// Generated by (magic number): 8000b
// Id's are bound by 39

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 4  "main" 18
                              ExecutionModeId 4 LocalSizeId 7 8 9
                              Source GLSL 450
                              Name 4  "main"
                              Name 14  "foo(vu3;"
                              Name 13  "wgs"
                              Name 16  "bn"
                              MemberName 16(bn) 0  "a"
                              Name 18  "bi"
                              Name 37  "param"
                              Decorate 7 SpecId 18
                              Decorate 9 SpecId 19
                              MemberDecorate 16(bn) 0 Offset 0
                              Decorate 16(bn) Block
                              Decorate 18(bi) DescriptorSet 0
                              Decorate 18(bi) Binding 0
                              Decorate 25 SpecId 18
                              Decorate 26 SpecId 19
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:      6(int) SpecConstant 32
               8:      6(int) Constant 32
               9:      6(int) SpecConstant 1
              10:             TypeVector 6(int) 3
              11:             TypePointer Function 10(ivec3)
              12:             TypeFunction 2 11(ptr)
          16(bn):             TypeStruct 6(int)
              17:             TypePointer StorageBuffer 16(bn)
          18(bi):     17(ptr) Variable StorageBuffer
              19:             TypeInt 32 1
              20:     19(int) Constant 0
              21:      6(int) Constant 0
              22:             TypePointer Function 6(int)
              25:      6(int) SpecConstant 32
              26:      6(int) SpecConstant 1
              27:   10(ivec3) SpecConstantComposite 25 8 26
              28:      6(int) Constant 1
              31:      6(int) Constant 2
              35:             TypePointer StorageBuffer 6(int)
         4(main):           2 Function None 3
               5:             Label
       37(param):     11(ptr) Variable Function
                              Store 37(param) 27
              38:           2 FunctionCall 14(foo(vu3;) 37(param)
                              Return
                              FunctionEnd
    14(foo(vu3;):           2 Function None 12
         13(wgs):     11(ptr) FunctionParameter
              15:             Label
              23:     22(ptr) AccessChain 13(wgs) 21
              24:      6(int) Load 23
              29:      6(int) CompositeExtract 27 1
              30:      6(int) IMul 24 29
              32:     22(ptr) AccessChain 13(wgs) 31
              33:      6(int) Load 32
              34:      6(int) IMul 30 33
              36:     35(ptr) AccessChain 18(bi) 20
                              Store 36 34
                              Return
                              FunctionEnd
