remap.specconst.comp
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 16104

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint GLCompute 5663  "main"
                              ExecutionMode 5663 LocalSize 1 1 1
                              Decorate 2 SpecId 0
                              Decorate 3 SpecId 1
                              Decorate 4 SpecId 2
                              Decorate 5 BuiltIn WorkgroupSize
               8:             TypeVoid
            1282:             TypeFunction 8
              11:             TypeInt 32 0
               2:     11(int) SpecConstant 1
               3:     11(int) SpecConstant 1
               4:     11(int) SpecConstant 1
              20:             TypeVector 11(int) 3
               5:   20(ivec3) SpecConstantComposite 2 3 4
               6:     11(int) SpecConstantOp 81 5 0
               7:     11(int) SpecConstantOp 81 5 1(GLSL.std.450)
               9:     11(int) SpecConstantOp 81 5 2
              10:     11(int) SpecConstantOp 132 7 9
              12:     11(int) SpecConstantOp 128 6 10
            5663:           8 Function None 1282
           16103:             Label
                              Return
                              FunctionEnd
