spv.300BuiltIns.vert
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 42

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 10 14 21 34
                              Source ESSL 310
                              Name 4  "main"
                              Name 8  "gl_PerVertex"
                              MemberName 8(gl_PerVertex) 0  "gl_Position"
                              MemberName 8(gl_PerVertex) 1  "gl_PointSize"
                              Name 10  ""
                              Name 14  "ps"
                              Name 21  "gl_VertexIndex"
                              Name 34  "gl_InstanceIndex"
                              MemberDecorate 8(gl_PerVertex) 0 Invariant
                              MemberDecorate 8(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 8(gl_PerVertex) 1 BuiltIn PointSize
                              Decorate 8(gl_PerVertex) Block
                              Decorate 14(ps) RelaxedPrecision
                              Decorate 15 RelaxedPrecision
                              Decorate 21(gl_VertexIndex) BuiltIn VertexIndex
                              Decorate 30 RelaxedPrecision
                              Decorate 34(gl_InstanceIndex) BuiltIn InstanceIndex
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
 8(gl_PerVertex):             TypeStruct 7(fvec4) 6(float)
               9:             TypePointer Output 8(gl_PerVertex)
              10:      9(ptr) Variable Output
              11:             TypeInt 32 1
              12:     11(int) Constant 0
              13:             TypePointer Input 6(float)
          14(ps):     13(ptr) Variable Input
              17:             TypePointer Output 7(fvec4)
              19:     11(int) Constant 4
              20:             TypePointer Input 11(int)
21(gl_VertexIndex):     20(ptr) Variable Input
              29:     11(int) Constant 1
              31:             TypePointer Output 6(float)
              33:     11(int) Constant 5
34(gl_InstanceIndex):     20(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
              15:    6(float) Load 14(ps)
              16:    7(fvec4) CompositeConstruct 15 15 15 15
              18:     17(ptr) AccessChain 10 12
                              Store 18 16
              22:     11(int) Load 21(gl_VertexIndex)
              23:     11(int) ISub 19 22
              24:    6(float) ConvertSToF 23
              25:     17(ptr) AccessChain 10 12
              26:    7(fvec4) Load 25
              27:    7(fvec4) VectorTimesScalar 26 24
              28:     17(ptr) AccessChain 10 12
                              Store 28 27
              30:    6(float) Load 14(ps)
              32:     31(ptr) AccessChain 10 29
                              Store 32 30
              35:     11(int) Load 34(gl_InstanceIndex)
              36:     11(int) ISub 33 35
              37:    6(float) ConvertSToF 36
              38:     31(ptr) AccessChain 10 29
              39:    6(float) Load 38
              40:    6(float) FMul 39 37
              41:     31(ptr) AccessChain 10 29
                              Store 41 40
                              Return
                              FunctionEnd
