../Test/hlsl.include.vert
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 44

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 42
                              Source HLSL 500
                              Name 4  "main"
                              Name 9  "@main("
                              Name 11  "$Global"
                              MemberName 11($Global) 0  "i1"
                              MemberName 11($Global) 1  "i2"
                              MemberName 11($Global) 2  "i4"
                              MemberName 11($Global) 3  "i3"
                              MemberName 11($Global) 4  "i6"
                              MemberName 11($Global) 5  "i5"
                              Name 13  ""
                              Name 42  "@entryPointOutput"
                              MemberDecorate 11($Global) 0 Offset 0
                              MemberDecorate 11($Global) 1 Offset 16
                              MemberDecorate 11($Global) 2 Offset 32
                              MemberDecorate 11($Global) 3 Offset 48
                              MemberDecorate 11($Global) 4 Offset 64
                              MemberDecorate 11($Global) 5 Offset 80
                              Decorate 11($Global) Block
                              Decorate 13 DescriptorSet 0
                              Decorate 42(@entryPointOutput) BuiltIn Position
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeFunction 7(fvec4)
     11($Global):             TypeStruct 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4)
              12:             TypePointer Uniform 11($Global)
              13:     12(ptr) Variable Uniform
              14:             TypeInt 32 1
              15:     14(int) Constant 0
              16:             TypePointer Uniform 7(fvec4)
              19:     14(int) Constant 1
              23:     14(int) Constant 3
              27:     14(int) Constant 2
              31:     14(int) Constant 5
              35:     14(int) Constant 4
              41:             TypePointer Output 7(fvec4)
42(@entryPointOutput):     41(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              43:    7(fvec4) FunctionCall 9(@main()
                              Store 42(@entryPointOutput) 43
                              Return
                              FunctionEnd
       9(@main():    7(fvec4) Function None 8
              10:             Label
              17:     16(ptr) AccessChain 13 15
              18:    7(fvec4) Load 17
              20:     16(ptr) AccessChain 13 19
              21:    7(fvec4) Load 20
              22:    7(fvec4) FAdd 18 21
              24:     16(ptr) AccessChain 13 23
              25:    7(fvec4) Load 24
              26:    7(fvec4) FAdd 22 25
              28:     16(ptr) AccessChain 13 27
              29:    7(fvec4) Load 28
              30:    7(fvec4) FAdd 26 29
              32:     16(ptr) AccessChain 13 31
              33:    7(fvec4) Load 32
              34:    7(fvec4) FAdd 30 33
              36:     16(ptr) AccessChain 13 35
              37:    7(fvec4) Load 36
              38:    7(fvec4) FAdd 34 37
                              ReturnValue 38
                              FunctionEnd
