hlsl.y-negate-3.vert
Shader version: 500
0:? Sequence
0:11  Function Definition: @main( ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:11    Function Parameters: 
0:?     Sequence
0:14      move second child to first child ( temp 4-component vector of float)
0:14        pos: direct index for structure ( temp 4-component vector of float)
0:14          'vsout' ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:14          Constant:
0:14            0 (const int)
0:14        position: direct index for structure ( uniform 4-component vector of float)
0:14          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float position})
0:14          Constant:
0:14            0 (const uint)
0:15      move second child to first child ( temp int)
0:15        somethingelse: direct index for structure ( temp int)
0:15          'vsout' ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:15          Constant:
0:15            1 (const int)
0:15        Constant:
0:15          42 (const int)
0:17      Branch: Return with expression
0:17        'vsout' ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:11  Function Definition: main( ( temp void)
0:11    Function Parameters: 
0:?     Sequence
0:11      Sequence
0:11        move second child to first child ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:11          'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:11          Function Call: @main( ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:11        Sequence
0:11          move second child to first child ( temp 4-component vector of float)
0:11            '@position' ( temp 4-component vector of float)
0:11            pos: direct index for structure ( temp 4-component vector of float)
0:11              'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:11              Constant:
0:11                0 (const int)
0:11          move second child to first child ( temp float)
0:11            direct index ( temp float)
0:11              '@position' ( temp 4-component vector of float)
0:11              Constant:
0:11                1 (const int)
0:11            Negate value ( temp float)
0:11              direct index ( temp float)
0:11                '@position' ( temp 4-component vector of float)
0:11                Constant:
0:11                  1 (const int)
0:11          move second child to first child ( temp 4-component vector of float)
0:?             '@entryPointOutput.pos' ( out 4-component vector of float Position)
0:11            '@position' ( temp 4-component vector of float)
0:11        move second child to first child ( temp int)
0:?           '@entryPointOutput.somethingelse' (layout( location=0) out int)
0:11          somethingelse: direct index for structure ( temp int)
0:11            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:11            Constant:
0:11              1 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float position})
0:?     '@entryPointOutput.pos' ( out 4-component vector of float Position)
0:?     '@entryPointOutput.somethingelse' (layout( location=0) out int)


Linked vertex stage:


Shader version: 500
0:? Sequence
0:11  Function Definition: @main( ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:11    Function Parameters: 
0:?     Sequence
0:14      move second child to first child ( temp 4-component vector of float)
0:14        pos: direct index for structure ( temp 4-component vector of float)
0:14          'vsout' ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:14          Constant:
0:14            0 (const int)
0:14        position: direct index for structure ( uniform 4-component vector of float)
0:14          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float position})
0:14          Constant:
0:14            0 (const uint)
0:15      move second child to first child ( temp int)
0:15        somethingelse: direct index for structure ( temp int)
0:15          'vsout' ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:15          Constant:
0:15            1 (const int)
0:15        Constant:
0:15          42 (const int)
0:17      Branch: Return with expression
0:17        'vsout' ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:11  Function Definition: main( ( temp void)
0:11    Function Parameters: 
0:?     Sequence
0:11      Sequence
0:11        move second child to first child ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:11          'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:11          Function Call: @main( ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:11        Sequence
0:11          move second child to first child ( temp 4-component vector of float)
0:11            '@position' ( temp 4-component vector of float)
0:11            pos: direct index for structure ( temp 4-component vector of float)
0:11              'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:11              Constant:
0:11                0 (const int)
0:11          move second child to first child ( temp float)
0:11            direct index ( temp float)
0:11              '@position' ( temp 4-component vector of float)
0:11              Constant:
0:11                1 (const int)
0:11            Negate value ( temp float)
0:11              direct index ( temp float)
0:11                '@position' ( temp 4-component vector of float)
0:11                Constant:
0:11                  1 (const int)
0:11          move second child to first child ( temp 4-component vector of float)
0:?             '@entryPointOutput.pos' ( out 4-component vector of float Position)
0:11            '@position' ( temp 4-component vector of float)
0:11        move second child to first child ( temp int)
0:?           '@entryPointOutput.somethingelse' (layout( location=0) out int)
0:11          somethingelse: direct index for structure ( temp int)
0:11            'flattenTemp' ( temp structure{ temp 4-component vector of float pos,  temp int somethingelse})
0:11            Constant:
0:11              1 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float position})
0:?     '@entryPointOutput.pos' ( out 4-component vector of float Position)
0:?     '@entryPointOutput.somethingelse' (layout( location=0) out int)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 44 47
                              Source HLSL 500
                              Name 4  "main"
                              Name 9  "VS_OUT"
                              MemberName 9(VS_OUT) 0  "pos"
                              MemberName 9(VS_OUT) 1  "somethingelse"
                              Name 11  "@main("
                              Name 14  "vsout"
                              Name 16  "$Global"
                              MemberName 16($Global) 0  "position"
                              Name 18  ""
                              Name 31  "flattenTemp"
                              Name 33  "@position"
                              Name 44  "@entryPointOutput.pos"
                              Name 47  "@entryPointOutput.somethingelse"
                              MemberDecorate 16($Global) 0 Offset 0
                              Decorate 16($Global) Block
                              Decorate 18 DescriptorSet 0
                              Decorate 44(@entryPointOutput.pos) BuiltIn Position
                              Decorate 47(@entryPointOutput.somethingelse) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeInt 32 1
       9(VS_OUT):             TypeStruct 7(fvec4) 8(int)
              10:             TypeFunction 9(VS_OUT)
              13:             TypePointer Function 9(VS_OUT)
              15:      8(int) Constant 0
     16($Global):             TypeStruct 7(fvec4)
              17:             TypePointer Uniform 16($Global)
              18:     17(ptr) Variable Uniform
              19:             TypePointer Uniform 7(fvec4)
              22:             TypePointer Function 7(fvec4)
              24:      8(int) Constant 1
              25:      8(int) Constant 42
              26:             TypePointer Function 8(int)
              36:             TypeInt 32 0
              37:     36(int) Constant 1
              38:             TypePointer Function 6(float)
              43:             TypePointer Output 7(fvec4)
44(@entryPointOutput.pos):     43(ptr) Variable Output
              46:             TypePointer Output 8(int)
47(@entryPointOutput.somethingelse):     46(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
 31(flattenTemp):     13(ptr) Variable Function
   33(@position):     22(ptr) Variable Function
              32:   9(VS_OUT) FunctionCall 11(@main()
                              Store 31(flattenTemp) 32
              34:     22(ptr) AccessChain 31(flattenTemp) 15
              35:    7(fvec4) Load 34
                              Store 33(@position) 35
              39:     38(ptr) AccessChain 33(@position) 37
              40:    6(float) Load 39
              41:    6(float) FNegate 40
              42:     38(ptr) AccessChain 33(@position) 37
                              Store 42 41
              45:    7(fvec4) Load 33(@position)
                              Store 44(@entryPointOutput.pos) 45
              48:     26(ptr) AccessChain 31(flattenTemp) 24
              49:      8(int) Load 48
                              Store 47(@entryPointOutput.somethingelse) 49
                              Return
                              FunctionEnd
      11(@main():   9(VS_OUT) Function None 10
              12:             Label
       14(vsout):     13(ptr) Variable Function
              20:     19(ptr) AccessChain 18 15
              21:    7(fvec4) Load 20
              23:     22(ptr) AccessChain 14(vsout) 15
                              Store 23 21
              27:     26(ptr) AccessChain 14(vsout) 24
                              Store 27 25
              28:   9(VS_OUT) Load 14(vsout)
                              ReturnValue 28
                              FunctionEnd
