spv.invariantAll.vert
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 25

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 13 17
                              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 17  "v"
                              MemberDecorate 11(gl_PerVertex) 0 Invariant
                              MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 11(gl_PerVertex) 1 Invariant
                              MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 11(gl_PerVertex) 2 Invariant
                              MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance
                              MemberDecorate 11(gl_PerVertex) 3 Invariant
                              MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance
                              Decorate 11(gl_PerVertex) Block
                              Decorate 17(v) Location 0
                              Decorate 17(v) Invariant
               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:             TypePointer Output 6(float)
           17(v):     16(ptr) Variable Output
              20:    6(float) Constant 0
              21:    6(float) Constant 1065353216
              23:             TypePointer Output 7(fvec4)
         4(main):           2 Function None 3
               5:             Label
              18:    6(float) Load 17(v)
              19:    6(float) Load 17(v)
              22:    7(fvec4) CompositeConstruct 18 19 20 21
              24:     23(ptr) AccessChain 13 15
                              Store 24 22
                              Return
                              FunctionEnd
