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

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