hlsl.struct.split.trivial.vert
Shader version: 500
0:? Sequence
0:16  Function Definition: @main(struct-VS_INPUT-vf41;vf4; ( temp structure{ temp 4-component vector of float Pos})
0:16    Function Parameters: 
0:16      'vsin' ( in structure{ temp 4-component vector of float Pos_in})
0:16      'Pos_loose' ( in 4-component vector of float)
0:?     Sequence
0:19      move second child to first child ( temp 4-component vector of float)
0:19        Pos: direct index for structure ( temp 4-component vector of float)
0:19          'vsout' ( temp structure{ temp 4-component vector of float Pos})
0:19          Constant:
0:19            0 (const int)
0:19        add ( temp 4-component vector of float)
0:19          Pos_in: direct index for structure ( temp 4-component vector of float)
0:19            'vsin' ( in structure{ temp 4-component vector of float Pos_in})
0:19            Constant:
0:19              0 (const int)
0:19          'Pos_loose' ( in 4-component vector of float)
0:21      Branch: Return with expression
0:21        'vsout' ( temp structure{ temp 4-component vector of float Pos})
0:16  Function Definition: main( ( temp void)
0:16    Function Parameters: 
0:?     Sequence
0:16      Sequence
0:16        move second child to first child ( temp 4-component vector of float)
0:16          Pos_in: direct index for structure ( temp 4-component vector of float)
0:?             'vsin' ( temp structure{ temp 4-component vector of float Pos_in})
0:16            Constant:
0:16              0 (const int)
0:?           'vsin.Pos_in' (layout( location=0) in 4-component vector of float)
0:16      move second child to first child ( temp 4-component vector of float)
0:?         'Pos_loose' ( temp 4-component vector of float)
0:?         'Pos_loose' (layout( location=1) in 4-component vector of float)
0:16      Sequence
0:16        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Pos' ( out 4-component vector of float Position)
0:16          Pos: direct index for structure ( temp 4-component vector of float)
0:16            Function Call: @main(struct-VS_INPUT-vf41;vf4; ( temp structure{ temp 4-component vector of float Pos})
0:?               'vsin' ( temp structure{ temp 4-component vector of float Pos_in})
0:?               'Pos_loose' ( temp 4-component vector of float)
0:16            Constant:
0:16              0 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.Pos' ( out 4-component vector of float Position)
0:?     'vsin.Pos_in' (layout( location=0) in 4-component vector of float)
0:?     'Pos_loose' (layout( location=1) in 4-component vector of float)


Linked vertex stage:


Shader version: 500
0:? Sequence
0:16  Function Definition: @main(struct-VS_INPUT-vf41;vf4; ( temp structure{ temp 4-component vector of float Pos})
0:16    Function Parameters: 
0:16      'vsin' ( in structure{ temp 4-component vector of float Pos_in})
0:16      'Pos_loose' ( in 4-component vector of float)
0:?     Sequence
0:19      move second child to first child ( temp 4-component vector of float)
0:19        Pos: direct index for structure ( temp 4-component vector of float)
0:19          'vsout' ( temp structure{ temp 4-component vector of float Pos})
0:19          Constant:
0:19            0 (const int)
0:19        add ( temp 4-component vector of float)
0:19          Pos_in: direct index for structure ( temp 4-component vector of float)
0:19            'vsin' ( in structure{ temp 4-component vector of float Pos_in})
0:19            Constant:
0:19              0 (const int)
0:19          'Pos_loose' ( in 4-component vector of float)
0:21      Branch: Return with expression
0:21        'vsout' ( temp structure{ temp 4-component vector of float Pos})
0:16  Function Definition: main( ( temp void)
0:16    Function Parameters: 
0:?     Sequence
0:16      Sequence
0:16        move second child to first child ( temp 4-component vector of float)
0:16          Pos_in: direct index for structure ( temp 4-component vector of float)
0:?             'vsin' ( temp structure{ temp 4-component vector of float Pos_in})
0:16            Constant:
0:16              0 (const int)
0:?           'vsin.Pos_in' (layout( location=0) in 4-component vector of float)
0:16      move second child to first child ( temp 4-component vector of float)
0:?         'Pos_loose' ( temp 4-component vector of float)
0:?         'Pos_loose' (layout( location=1) in 4-component vector of float)
0:16      Sequence
0:16        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Pos' ( out 4-component vector of float Position)
0:16          Pos: direct index for structure ( temp 4-component vector of float)
0:16            Function Call: @main(struct-VS_INPUT-vf41;vf4; ( temp structure{ temp 4-component vector of float Pos})
0:?               'vsin' ( temp structure{ temp 4-component vector of float Pos_in})
0:?               'Pos_loose' ( temp 4-component vector of float)
0:16            Constant:
0:16              0 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.Pos' ( out 4-component vector of float Position)
0:?     'vsin.Pos_in' (layout( location=0) in 4-component vector of float)
0:?     'Pos_loose' (layout( location=1) in 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 45

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 31 35 38
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "VS_INPUT"
                              MemberName 8(VS_INPUT) 0  "Pos_in"
                              Name 11  "VS_OUTPUT"
                              MemberName 11(VS_OUTPUT) 0  "Pos"
                              Name 15  "@main(struct-VS_INPUT-vf41;vf4;"
                              Name 13  "vsin"
                              Name 14  "Pos_loose"
                              Name 18  "vsout"
                              Name 29  "vsin"
                              Name 31  "vsin.Pos_in"
                              Name 34  "Pos_loose"
                              Name 35  "Pos_loose"
                              Name 38  "@entryPointOutput.Pos"
                              Name 39  "param"
                              Name 41  "param"
                              Decorate 31(vsin.Pos_in) Location 0
                              Decorate 35(Pos_loose) Location 1
                              Decorate 38(@entryPointOutput.Pos) BuiltIn Position
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
     8(VS_INPUT):             TypeStruct 7(fvec4)
               9:             TypePointer Function 8(VS_INPUT)
              10:             TypePointer Function 7(fvec4)
   11(VS_OUTPUT):             TypeStruct 7(fvec4)
              12:             TypeFunction 11(VS_OUTPUT) 9(ptr) 10(ptr)
              17:             TypePointer Function 11(VS_OUTPUT)
              19:             TypeInt 32 1
              20:     19(int) Constant 0
              30:             TypePointer Input 7(fvec4)
 31(vsin.Pos_in):     30(ptr) Variable Input
   35(Pos_loose):     30(ptr) Variable Input
              37:             TypePointer Output 7(fvec4)
38(@entryPointOutput.Pos):     37(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
        29(vsin):      9(ptr) Variable Function
   34(Pos_loose):     10(ptr) Variable Function
       39(param):      9(ptr) Variable Function
       41(param):     10(ptr) Variable Function
              32:    7(fvec4) Load 31(vsin.Pos_in)
              33:     10(ptr) AccessChain 29(vsin) 20
                              Store 33 32
              36:    7(fvec4) Load 35(Pos_loose)
                              Store 34(Pos_loose) 36
              40: 8(VS_INPUT) Load 29(vsin)
                              Store 39(param) 40
              42:    7(fvec4) Load 34(Pos_loose)
                              Store 41(param) 42
              43:11(VS_OUTPUT) FunctionCall 15(@main(struct-VS_INPUT-vf41;vf4;) 39(param) 41(param)
              44:    7(fvec4) CompositeExtract 43 0
                              Store 38(@entryPointOutput.Pos) 44
                              Return
                              FunctionEnd
15(@main(struct-VS_INPUT-vf41;vf4;):11(VS_OUTPUT) Function None 12
        13(vsin):      9(ptr) FunctionParameter
   14(Pos_loose):     10(ptr) FunctionParameter
              16:             Label
       18(vsout):     17(ptr) Variable Function
              21:     10(ptr) AccessChain 13(vsin) 20
              22:    7(fvec4) Load 21
              23:    7(fvec4) Load 14(Pos_loose)
              24:    7(fvec4) FAdd 22 23
              25:     10(ptr) AccessChain 18(vsout) 20
                              Store 25 24
              26:11(VS_OUTPUT) Load 18(vsout)
                              ReturnValue 26
                              FunctionEnd
