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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main"
                              Source GLSL 450
                              Name 4  "main"
                              Name 9  "T"
                              MemberName 9(T) 0  "m"
                              Name 10  "U"
                              MemberName 10(U) 0  "m"
                              Name 11  "S"
                              MemberName 11(S) 0  "t"
                              MemberName 11(S) 1  "u"
                              Name 13  "s1"
                              Name 22  "s2"
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 2
               8:             TypeMatrix 7(fvec2) 2
            9(T):             TypeStruct 8
           10(U):             TypeStruct 8
           11(S):             TypeStruct 9(T) 10(U)
              12:             TypePointer Function 11(S)
              14:    6(float) Constant 1065353216
              15:    6(float) Constant 0
              16:    7(fvec2) ConstantComposite 14 15
              17:    7(fvec2) ConstantComposite 15 14
              18:           8 ConstantComposite 16 17
              19:        9(T) ConstantComposite 18
              20:       10(U) ConstantComposite 18
              21:       11(S) ConstantComposite 19 20
         4(main):           2 Function None 3
               5:             Label
          13(s1):     12(ptr) Variable Function
          22(s2):     12(ptr) Variable Function
                              Store 13(s1) 21
                              Store 22(s2) 21
                              Return
                              FunctionEnd
