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

                              Capability Shader
                              Capability TransformFeedback
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 10 33 37 38
                              ExecutionMode 4 Xfb
                              Source GLSL 450
                              Name 4  "main"
                              Name 8  "block2"
                              MemberName 8(block2) 0  "v"
                              MemberName 8(block2) 1  "u"
                              MemberName 8(block2) 2  "w"
                              MemberName 8(block2) 3  "x"
                              Name 10  ""
                              Name 31  "gl_PerVertex"
                              MemberName 31(gl_PerVertex) 0  "gl_Position"
                              MemberName 31(gl_PerVertex) 1  "gl_PointSize"
                              MemberName 31(gl_PerVertex) 2  "gl_ClipDistance"
                              MemberName 31(gl_PerVertex) 3  "gl_CullDistance"
                              Name 33  ""
                              Name 37  "gl_VertexID"
                              Name 38  "gl_InstanceID"
                              MemberDecorate 8(block2) 0 Offset 12
                              MemberDecorate 8(block2) 1 Offset 28
                              MemberDecorate 8(block2) 2 Offset 40
                              MemberDecorate 8(block2) 3 Offset 56
                              Decorate 8(block2) Block
                              Decorate 10 Location 5
                              Decorate 10 XfbBuffer 3
                              Decorate 10 XfbStride 72
                              MemberDecorate 31(gl_PerVertex) 0 BuiltIn Position
                              MemberDecorate 31(gl_PerVertex) 1 BuiltIn PointSize
                              MemberDecorate 31(gl_PerVertex) 2 BuiltIn ClipDistance
                              MemberDecorate 31(gl_PerVertex) 3 BuiltIn CullDistance
                              Decorate 31(gl_PerVertex) Block
                              Decorate 33 XfbBuffer 0
                              Decorate 33 XfbStride 0
                              Decorate 37(gl_VertexID) BuiltIn VertexId
                              Decorate 38(gl_InstanceID) BuiltIn InstanceId
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
       8(block2):             TypeStruct 7(fvec4) 6(float) 7(fvec4) 7(fvec4)
               9:             TypePointer Output 8(block2)
              10:      9(ptr) Variable Output
              11:             TypeInt 32 1
              12:     11(int) Constant 0
              13:    6(float) Constant 1065353216
              14:    6(float) Constant 0
              15:    7(fvec4) ConstantComposite 13 14 13 14
              16:             TypePointer Output 7(fvec4)
              18:     11(int) Constant 1
              19:    6(float) Constant 1084227584
              20:             TypePointer Output 6(float)
              22:     11(int) Constant 2
              23:    7(fvec4) ConstantComposite 13 14 14 13
              25:     11(int) Constant 3
              26:    7(fvec4) ConstantComposite 19 14 14 14
              28:             TypeInt 32 0
              29:     28(int) Constant 1
              30:             TypeArray 6(float) 29
31(gl_PerVertex):             TypeStruct 7(fvec4) 6(float) 30 30
              32:             TypePointer Output 31(gl_PerVertex)
              33:     32(ptr) Variable Output
              34:    7(fvec4) ConstantComposite 14 14 14 14
              36:             TypePointer Input 11(int)
 37(gl_VertexID):     36(ptr) Variable Input
38(gl_InstanceID):     36(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
              17:     16(ptr) AccessChain 10 12
                              Store 17 15
              21:     20(ptr) AccessChain 10 18
                              Store 21 19
              24:     16(ptr) AccessChain 10 22
                              Store 24 23
              27:     16(ptr) AccessChain 10 25
                              Store 27 26
              35:     16(ptr) AccessChain 33 12
                              Store 35 34
                              Return
                              FunctionEnd
