hlsl.y-negate-2.vert
Shader version: 500
0:? Sequence
0:6  Function Definition: @main(vf4; ( temp void)
0:6    Function Parameters: 
0:6      'position' ( out 4-component vector of float)
0:?     Sequence
0:7      move second child to first child ( temp 4-component vector of float)
0:7        'position' ( out 4-component vector of float)
0:7        pos: direct index for structure ( uniform 4-component vector of float)
0:7          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos})
0:7          Constant:
0:7            0 (const uint)
0:6  Function Definition: main( ( temp void)
0:6    Function Parameters: 
0:?     Sequence
0:6      Function Call: @main(vf4; ( temp void)
0:?         'position' ( temp 4-component vector of float)
0:6      Sequence
0:6        move second child to first child ( temp 4-component vector of float)
0:6          '@position' ( temp 4-component vector of float)
0:?           'position' ( temp 4-component vector of float)
0:6        move second child to first child ( temp float)
0:6          direct index ( temp float)
0:6            '@position' ( temp 4-component vector of float)
0:6            Constant:
0:6              1 (const int)
0:6          Negate value ( temp float)
0:6            direct index ( temp float)
0:6              '@position' ( temp 4-component vector of float)
0:6              Constant:
0:6                1 (const int)
0:6        move second child to first child ( temp 4-component vector of float)
0:?           'position' ( out 4-component vector of float Position)
0:6          '@position' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos})
0:?     'position' ( out 4-component vector of float Position)


Linked vertex stage:


Shader version: 500
0:? Sequence
0:6  Function Definition: @main(vf4; ( temp void)
0:6    Function Parameters: 
0:6      'position' ( out 4-component vector of float)
0:?     Sequence
0:7      move second child to first child ( temp 4-component vector of float)
0:7        'position' ( out 4-component vector of float)
0:7        pos: direct index for structure ( uniform 4-component vector of float)
0:7          'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos})
0:7          Constant:
0:7            0 (const uint)
0:6  Function Definition: main( ( temp void)
0:6    Function Parameters: 
0:?     Sequence
0:6      Function Call: @main(vf4; ( temp void)
0:?         'position' ( temp 4-component vector of float)
0:6      Sequence
0:6        move second child to first child ( temp 4-component vector of float)
0:6          '@position' ( temp 4-component vector of float)
0:?           'position' ( temp 4-component vector of float)
0:6        move second child to first child ( temp float)
0:6          direct index ( temp float)
0:6            '@position' ( temp 4-component vector of float)
0:6            Constant:
0:6              1 (const int)
0:6          Negate value ( temp float)
0:6            direct index ( temp float)
0:6              '@position' ( temp 4-component vector of float)
0:6              Constant:
0:6                1 (const int)
0:6        move second child to first child ( temp 4-component vector of float)
0:?           'position' ( out 4-component vector of float Position)
0:6          '@position' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float pos})
0:?     'position' ( out 4-component vector of float Position)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 35
                              Source HLSL 500
                              Name 4  "main"
                              Name 11  "@main(vf4;"
                              Name 10  "position"
                              Name 13  "$Global"
                              MemberName 13($Global) 0  "pos"
                              Name 15  ""
                              Name 21  "position"
                              Name 22  "param"
                              Name 25  "@position"
                              Name 35  "position"
                              MemberDecorate 13($Global) 0 Offset 0
                              Decorate 13($Global) Block
                              Decorate 15 DescriptorSet 0
                              Decorate 35(position) BuiltIn Position
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
               9:             TypeFunction 2 8(ptr)
     13($Global):             TypeStruct 7(fvec4)
              14:             TypePointer Uniform 13($Global)
              15:     14(ptr) Variable Uniform
              16:             TypeInt 32 1
              17:     16(int) Constant 0
              18:             TypePointer Uniform 7(fvec4)
              27:             TypeInt 32 0
              28:     27(int) Constant 1
              29:             TypePointer Function 6(float)
              34:             TypePointer Output 7(fvec4)
    35(position):     34(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
    21(position):      8(ptr) Variable Function
       22(param):      8(ptr) Variable Function
   25(@position):      8(ptr) Variable Function
              23:           2 FunctionCall 11(@main(vf4;) 22(param)
              24:    7(fvec4) Load 22(param)
                              Store 21(position) 24
              26:    7(fvec4) Load 21(position)
                              Store 25(@position) 26
              30:     29(ptr) AccessChain 25(@position) 28
              31:    6(float) Load 30
              32:    6(float) FNegate 31
              33:     29(ptr) AccessChain 25(@position) 28
                              Store 33 32
              36:    7(fvec4) Load 25(@position)
                              Store 35(position) 36
                              Return
                              FunctionEnd
  11(@main(vf4;):           2 Function None 9
    10(position):      8(ptr) FunctionParameter
              12:             Label
              19:     18(ptr) AccessChain 15 17
              20:    7(fvec4) Load 19
                              Store 10(position) 20
                              Return
                              FunctionEnd
