spv.specConst.vert
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 27

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 13 25 26
                              Source GLSL 450
                              Name 4  "main"
                              Name 11  "gl_PerVertex"
                              MemberName 11(gl_PerVertex) 0  "gl_Position"
                              MemberName 11(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 11(gl_PerVertex) 2  "gl_ClipDistance"
                              MemberName 11(gl_PerVertex) 3  "gl_CullDistance"
                              Name 13  ""
                              Name 18  "a"
                              Name 25  "gl_VertexID"
                              Name 26  "gl_InstanceID"
                              MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance
                              MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance
                              Decorate 11(gl_PerVertex) Block
                              Decorate 18(a) SpecId 11
                              Decorate 25(gl_VertexID) BuiltIn VertexId
                              Decorate 26(gl_InstanceID) BuiltIn InstanceId
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeInt 32 0
               9:      8(int) Constant 1
              10:             TypeArray 6(float) 9
11(gl_PerVertex):             TypeStruct 7(fvec4) 6(float) 10 10
              12:             TypePointer Output 11(gl_PerVertex)
              13:     12(ptr) Variable Output
              14:             TypeInt 32 1
              15:     14(int) Constant 0
              16:    6(float) Constant 1065353216
              17:    7(fvec4) ConstantComposite 16 16 16 16
           18(a):     14(int) SpecConstant 8
              22:             TypePointer Output 7(fvec4)
              24:             TypePointer Input 14(int)
 25(gl_VertexID):     24(ptr) Variable Input
26(gl_InstanceID):     24(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
              19:    6(float) ConvertSToF 18(a)
              20:    7(fvec4) CompositeConstruct 19 19 19 19
              21:    7(fvec4) FDiv 17 20
              23:     22(ptr) AccessChain 13 15
                              Store 23 21
                              Return
                              FunctionEnd
