hlsl.intrinsics.negative.vert
Shader version: 500
0:? Sequence
0:15  Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; ( temp float)
0:15    Function Parameters: 
0:15      'inF0' ( in float)
0:15      'inF1' ( in float)
0:15      'inF2' ( in float)
0:15      'inI0' ( in int)
0:?     Sequence
0:71      Branch: Return with expression
0:71        Constant:
0:71          0.000000
0:75  Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float)
0:75    Function Parameters: 
0:75      'inF0' ( in 1-component vector of float)
0:75      'inF1' ( in 1-component vector of float)
0:75      'inF2' ( in 1-component vector of float)
0:75      'inI0' ( in 1-component vector of int)
0:?     Sequence
0:80      Branch: Return with expression
0:80        Constant:
0:80          0.000000
0:84  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float)
0:84    Function Parameters: 
0:84      'inF0' ( in 2-component vector of float)
0:84      'inF1' ( in 2-component vector of float)
0:84      'inF2' ( in 2-component vector of float)
0:84      'inI0' ( in 2-component vector of int)
0:?     Sequence
0:127      Branch: Return with expression
0:127        Constant:
0:127          1.000000
0:127          2.000000
0:131  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float)
0:131    Function Parameters: 
0:131      'inF0' ( in 3-component vector of float)
0:131      'inF1' ( in 3-component vector of float)
0:131      'inF2' ( in 3-component vector of float)
0:131      'inI0' ( in 3-component vector of int)
0:?     Sequence
0:172      Branch: Return with expression
0:172        Constant:
0:172          1.000000
0:172          2.000000
0:172          3.000000
0:176  Function Definition: @VertexShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float)
0:176    Function Parameters: 
0:176      'inF0' ( in 4-component vector of float)
0:176      'inF1' ( in 4-component vector of float)
0:176      'inF2' ( in 4-component vector of float)
0:176      'inI0' ( in 4-component vector of int)
0:?     Sequence
0:217      Branch: Return with expression
0:217        Constant:
0:217          1.000000
0:217          2.000000
0:217          3.000000
0:217          4.000000
0:176  Function Definition: VertexShaderFunction( ( temp void)
0:176    Function Parameters: 
0:?     Sequence
0:176      move second child to first child ( temp 4-component vector of float)
0:?         'inF0' ( temp 4-component vector of float)
0:?         'inF0' (layout( location=0) in 4-component vector of float)
0:176      move second child to first child ( temp 4-component vector of float)
0:?         'inF1' ( temp 4-component vector of float)
0:?         'inF1' (layout( location=1) in 4-component vector of float)
0:176      move second child to first child ( temp 4-component vector of float)
0:?         'inF2' ( temp 4-component vector of float)
0:?         'inF2' (layout( location=2) in 4-component vector of float)
0:176      move second child to first child ( temp 4-component vector of int)
0:?         'inI0' ( temp 4-component vector of int)
0:?         'inI0' (layout( location=3) in 4-component vector of int)
0:176      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:176        Function Call: @VertexShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float)
0:?           'inF0' ( temp 4-component vector of float)
0:?           'inF1' ( temp 4-component vector of float)
0:?           'inF2' ( temp 4-component vector of float)
0:?           'inI0' ( temp 4-component vector of int)
0:226  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float)
0:226    Function Parameters: 
0:226      'inF0' ( in 2X2 matrix of float)
0:226      'inF1' ( in 2X2 matrix of float)
0:226      'inF2' ( in 2X2 matrix of float)
0:?     Sequence
0:230      Branch: Return with expression
0:230        Constant:
0:230          2.000000
0:230          2.000000
0:230          2.000000
0:230          2.000000
0:234  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float)
0:234    Function Parameters: 
0:234      'inF0' ( in 3X3 matrix of float)
0:234      'inF1' ( in 3X3 matrix of float)
0:234      'inF2' ( in 3X3 matrix of float)
0:?     Sequence
0:238      Branch: Return with expression
0:238        Constant:
0:238          3.000000
0:238          3.000000
0:238          3.000000
0:238          3.000000
0:238          3.000000
0:238          3.000000
0:238          3.000000
0:238          3.000000
0:238          3.000000
0:242  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float)
0:242    Function Parameters: 
0:242      'inF0' ( in 4X4 matrix of float)
0:242      'inF1' ( in 4X4 matrix of float)
0:242      'inF2' ( in 4X4 matrix of float)
0:?     Sequence
0:246      Branch: Return with expression
0:246        Constant:
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:?   Linker Objects
0:?     'gs_ua' ( global uint)
0:?     'gs_ub' ( global uint)
0:?     'gs_uc' ( global uint)
0:?     'gs_ua2' ( global 2-component vector of uint)
0:?     'gs_ub2' ( global 2-component vector of uint)
0:?     'gs_uc2' ( global 2-component vector of uint)
0:?     'gs_ua3' ( global 3-component vector of uint)
0:?     'gs_ub3' ( global 3-component vector of uint)
0:?     'gs_uc3' ( global 3-component vector of uint)
0:?     'gs_ua4' ( global 4-component vector of uint)
0:?     'gs_ub4' ( global 4-component vector of uint)
0:?     'gs_uc4' ( global 4-component vector of uint)
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'inF0' (layout( location=0) in 4-component vector of float)
0:?     'inF1' (layout( location=1) in 4-component vector of float)
0:?     'inF2' (layout( location=2) in 4-component vector of float)
0:?     'inI0' (layout( location=3) in 4-component vector of int)


Linked vertex stage:


Shader version: 500
0:? Sequence
0:15  Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; ( temp float)
0:15    Function Parameters: 
0:15      'inF0' ( in float)
0:15      'inF1' ( in float)
0:15      'inF2' ( in float)
0:15      'inI0' ( in int)
0:?     Sequence
0:71      Branch: Return with expression
0:71        Constant:
0:71          0.000000
0:75  Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; ( temp 1-component vector of float)
0:75    Function Parameters: 
0:75      'inF0' ( in 1-component vector of float)
0:75      'inF1' ( in 1-component vector of float)
0:75      'inF2' ( in 1-component vector of float)
0:75      'inI0' ( in 1-component vector of int)
0:?     Sequence
0:80      Branch: Return with expression
0:80        Constant:
0:80          0.000000
0:84  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; ( temp 2-component vector of float)
0:84    Function Parameters: 
0:84      'inF0' ( in 2-component vector of float)
0:84      'inF1' ( in 2-component vector of float)
0:84      'inF2' ( in 2-component vector of float)
0:84      'inI0' ( in 2-component vector of int)
0:?     Sequence
0:127      Branch: Return with expression
0:127        Constant:
0:127          1.000000
0:127          2.000000
0:131  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; ( temp 3-component vector of float)
0:131    Function Parameters: 
0:131      'inF0' ( in 3-component vector of float)
0:131      'inF1' ( in 3-component vector of float)
0:131      'inF2' ( in 3-component vector of float)
0:131      'inI0' ( in 3-component vector of int)
0:?     Sequence
0:172      Branch: Return with expression
0:172        Constant:
0:172          1.000000
0:172          2.000000
0:172          3.000000
0:176  Function Definition: @VertexShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float)
0:176    Function Parameters: 
0:176      'inF0' ( in 4-component vector of float)
0:176      'inF1' ( in 4-component vector of float)
0:176      'inF2' ( in 4-component vector of float)
0:176      'inI0' ( in 4-component vector of int)
0:?     Sequence
0:217      Branch: Return with expression
0:217        Constant:
0:217          1.000000
0:217          2.000000
0:217          3.000000
0:217          4.000000
0:176  Function Definition: VertexShaderFunction( ( temp void)
0:176    Function Parameters: 
0:?     Sequence
0:176      move second child to first child ( temp 4-component vector of float)
0:?         'inF0' ( temp 4-component vector of float)
0:?         'inF0' (layout( location=0) in 4-component vector of float)
0:176      move second child to first child ( temp 4-component vector of float)
0:?         'inF1' ( temp 4-component vector of float)
0:?         'inF1' (layout( location=1) in 4-component vector of float)
0:176      move second child to first child ( temp 4-component vector of float)
0:?         'inF2' ( temp 4-component vector of float)
0:?         'inF2' (layout( location=2) in 4-component vector of float)
0:176      move second child to first child ( temp 4-component vector of int)
0:?         'inI0' ( temp 4-component vector of int)
0:?         'inI0' (layout( location=3) in 4-component vector of int)
0:176      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:176        Function Call: @VertexShaderFunction(vf4;vf4;vf4;vi4; ( temp 4-component vector of float)
0:?           'inF0' ( temp 4-component vector of float)
0:?           'inF1' ( temp 4-component vector of float)
0:?           'inF2' ( temp 4-component vector of float)
0:?           'inI0' ( temp 4-component vector of int)
0:226  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; ( temp 2X2 matrix of float)
0:226    Function Parameters: 
0:226      'inF0' ( in 2X2 matrix of float)
0:226      'inF1' ( in 2X2 matrix of float)
0:226      'inF2' ( in 2X2 matrix of float)
0:?     Sequence
0:230      Branch: Return with expression
0:230        Constant:
0:230          2.000000
0:230          2.000000
0:230          2.000000
0:230          2.000000
0:234  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; ( temp 3X3 matrix of float)
0:234    Function Parameters: 
0:234      'inF0' ( in 3X3 matrix of float)
0:234      'inF1' ( in 3X3 matrix of float)
0:234      'inF2' ( in 3X3 matrix of float)
0:?     Sequence
0:238      Branch: Return with expression
0:238        Constant:
0:238          3.000000
0:238          3.000000
0:238          3.000000
0:238          3.000000
0:238          3.000000
0:238          3.000000
0:238          3.000000
0:238          3.000000
0:238          3.000000
0:242  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; ( temp 4X4 matrix of float)
0:242    Function Parameters: 
0:242      'inF0' ( in 4X4 matrix of float)
0:242      'inF1' ( in 4X4 matrix of float)
0:242      'inF2' ( in 4X4 matrix of float)
0:?     Sequence
0:246      Branch: Return with expression
0:246        Constant:
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:246          4.000000
0:?   Linker Objects
0:?     'gs_ua' ( global uint)
0:?     'gs_ub' ( global uint)
0:?     'gs_uc' ( global uint)
0:?     'gs_ua2' ( global 2-component vector of uint)
0:?     'gs_ub2' ( global 2-component vector of uint)
0:?     'gs_uc2' ( global 2-component vector of uint)
0:?     'gs_ua3' ( global 3-component vector of uint)
0:?     'gs_ub3' ( global 3-component vector of uint)
0:?     'gs_uc3' ( global 3-component vector of uint)
0:?     'gs_ua4' ( global 4-component vector of uint)
0:?     'gs_ub4' ( global 4-component vector of uint)
0:?     'gs_uc4' ( global 4-component vector of uint)
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'inF0' (layout( location=0) in 4-component vector of float)
0:?     'inF1' (layout( location=1) in 4-component vector of float)
0:?     'inF2' (layout( location=2) in 4-component vector of float)
0:?     'inI0' (layout( location=3) in 4-component vector of int)

// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 155

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "VertexShaderFunction" 100 103 106 110 113
                              Source HLSL 500
                              Name 4  "VertexShaderFunction"
                              Name 15  "VertexShaderFunctionS(f1;f1;f1;i1;"
                              Name 11  "inF0"
                              Name 12  "inF1"
                              Name 13  "inF2"
                              Name 14  "inI0"
                              Name 21  "VertexShaderFunction1(vf1;vf1;vf1;vi1;"
                              Name 17  "inF0"
                              Name 18  "inF1"
                              Name 19  "inF2"
                              Name 20  "inI0"
                              Name 32  "VertexShaderFunction2(vf2;vf2;vf2;vi2;"
                              Name 28  "inF0"
                              Name 29  "inF1"
                              Name 30  "inF2"
                              Name 31  "inI0"
                              Name 43  "VertexShaderFunction3(vf3;vf3;vf3;vi3;"
                              Name 39  "inF0"
                              Name 40  "inF1"
                              Name 41  "inF2"
                              Name 42  "inI0"
                              Name 54  "@VertexShaderFunction(vf4;vf4;vf4;vi4;"
                              Name 50  "inF0"
                              Name 51  "inF1"
                              Name 52  "inF2"
                              Name 53  "inI0"
                              Name 62  "VertexShaderFunction2x2(mf22;mf22;mf22;"
                              Name 59  "inF0"
                              Name 60  "inF1"
                              Name 61  "inF2"
                              Name 70  "VertexShaderFunction3x3(mf33;mf33;mf33;"
                              Name 67  "inF0"
                              Name 68  "inF1"
                              Name 69  "inF2"
                              Name 78  "VertexShaderFunction4x4(mf44;mf44;mf44;"
                              Name 75  "inF0"
                              Name 76  "inF1"
                              Name 77  "inF2"
                              Name 98  "inF0"
                              Name 100  "inF0"
                              Name 102  "inF1"
                              Name 103  "inF1"
                              Name 105  "inF2"
                              Name 106  "inF2"
                              Name 108  "inI0"
                              Name 110  "inI0"
                              Name 113  "@entryPointOutput"
                              Name 114  "param"
                              Name 116  "param"
                              Name 118  "param"
                              Name 120  "param"
                              Name 137  "gs_ua"
                              Name 138  "gs_ub"
                              Name 139  "gs_uc"
                              Name 142  "gs_ua2"
                              Name 143  "gs_ub2"
                              Name 144  "gs_uc2"
                              Name 147  "gs_ua3"
                              Name 148  "gs_ub3"
                              Name 149  "gs_uc3"
                              Name 152  "gs_ua4"
                              Name 153  "gs_ub4"
                              Name 154  "gs_uc4"
                              Decorate 100(inF0) Location 0
                              Decorate 103(inF1) Location 1
                              Decorate 106(inF2) Location 2
                              Decorate 110(inI0) Location 3
                              Decorate 113(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               8:             TypeInt 32 1
               9:             TypePointer Function 8(int)
              10:             TypeFunction 6(float) 7(ptr) 7(ptr) 7(ptr) 9(ptr)
              23:             TypeVector 6(float) 2
              24:             TypePointer Function 23(fvec2)
              25:             TypeVector 8(int) 2
              26:             TypePointer Function 25(ivec2)
              27:             TypeFunction 23(fvec2) 24(ptr) 24(ptr) 24(ptr) 26(ptr)
              34:             TypeVector 6(float) 3
              35:             TypePointer Function 34(fvec3)
              36:             TypeVector 8(int) 3
              37:             TypePointer Function 36(ivec3)
              38:             TypeFunction 34(fvec3) 35(ptr) 35(ptr) 35(ptr) 37(ptr)
              45:             TypeVector 6(float) 4
              46:             TypePointer Function 45(fvec4)
              47:             TypeVector 8(int) 4
              48:             TypePointer Function 47(ivec4)
              49:             TypeFunction 45(fvec4) 46(ptr) 46(ptr) 46(ptr) 48(ptr)
              56:             TypeMatrix 23(fvec2) 2
              57:             TypePointer Function 56
              58:             TypeFunction 56 57(ptr) 57(ptr) 57(ptr)
              64:             TypeMatrix 34(fvec3) 3
              65:             TypePointer Function 64
              66:             TypeFunction 64 65(ptr) 65(ptr) 65(ptr)
              72:             TypeMatrix 45(fvec4) 4
              73:             TypePointer Function 72
              74:             TypeFunction 72 73(ptr) 73(ptr) 73(ptr)
              80:    6(float) Constant 0
              85:    6(float) Constant 1065353216
              86:    6(float) Constant 1073741824
              87:   23(fvec2) ConstantComposite 85 86
              90:    6(float) Constant 1077936128
              91:   34(fvec3) ConstantComposite 85 86 90
              94:    6(float) Constant 1082130432
              95:   45(fvec4) ConstantComposite 85 86 90 94
              99:             TypePointer Input 45(fvec4)
       100(inF0):     99(ptr) Variable Input
       103(inF1):     99(ptr) Variable Input
       106(inF2):     99(ptr) Variable Input
             109:             TypePointer Input 47(ivec4)
       110(inI0):    109(ptr) Variable Input
             112:             TypePointer Output 45(fvec4)
113(@entryPointOutput):    112(ptr) Variable Output
             123:   23(fvec2) ConstantComposite 86 86
             124:          56 ConstantComposite 123 123
             127:   34(fvec3) ConstantComposite 90 90 90
             128:          64 ConstantComposite 127 127 127
             131:   45(fvec4) ConstantComposite 94 94 94 94
             132:          72 ConstantComposite 131 131 131 131
             135:             TypeInt 32 0
             136:             TypePointer Private 135(int)
      137(gs_ua):    136(ptr) Variable Private
      138(gs_ub):    136(ptr) Variable Private
      139(gs_uc):    136(ptr) Variable Private
             140:             TypeVector 135(int) 2
             141:             TypePointer Private 140(ivec2)
     142(gs_ua2):    141(ptr) Variable Private
     143(gs_ub2):    141(ptr) Variable Private
     144(gs_uc2):    141(ptr) Variable Private
             145:             TypeVector 135(int) 3
             146:             TypePointer Private 145(ivec3)
     147(gs_ua3):    146(ptr) Variable Private
     148(gs_ub3):    146(ptr) Variable Private
     149(gs_uc3):    146(ptr) Variable Private
             150:             TypeVector 135(int) 4
             151:             TypePointer Private 150(ivec4)
     152(gs_ua4):    151(ptr) Variable Private
     153(gs_ub4):    151(ptr) Variable Private
     154(gs_uc4):    151(ptr) Variable Private
4(VertexShaderFunction):           2 Function None 3
               5:             Label
        98(inF0):     46(ptr) Variable Function
       102(inF1):     46(ptr) Variable Function
       105(inF2):     46(ptr) Variable Function
       108(inI0):     48(ptr) Variable Function
      114(param):     46(ptr) Variable Function
      116(param):     46(ptr) Variable Function
      118(param):     46(ptr) Variable Function
      120(param):     48(ptr) Variable Function
             101:   45(fvec4) Load 100(inF0)
                              Store 98(inF0) 101
             104:   45(fvec4) Load 103(inF1)
                              Store 102(inF1) 104
             107:   45(fvec4) Load 106(inF2)
                              Store 105(inF2) 107
             111:   47(ivec4) Load 110(inI0)
                              Store 108(inI0) 111
             115:   45(fvec4) Load 98(inF0)
                              Store 114(param) 115
             117:   45(fvec4) Load 102(inF1)
                              Store 116(param) 117
             119:   45(fvec4) Load 105(inF2)
                              Store 118(param) 119
             121:   47(ivec4) Load 108(inI0)
                              Store 120(param) 121
             122:   45(fvec4) FunctionCall 54(@VertexShaderFunction(vf4;vf4;vf4;vi4;) 114(param) 116(param) 118(param) 120(param)
                              Store 113(@entryPointOutput) 122
                              Return
                              FunctionEnd
15(VertexShaderFunctionS(f1;f1;f1;i1;):    6(float) Function None 10
        11(inF0):      7(ptr) FunctionParameter
        12(inF1):      7(ptr) FunctionParameter
        13(inF2):      7(ptr) FunctionParameter
        14(inI0):      9(ptr) FunctionParameter
              16:             Label
                              ReturnValue 80
                              FunctionEnd
21(VertexShaderFunction1(vf1;vf1;vf1;vi1;):    6(float) Function None 10
        17(inF0):      7(ptr) FunctionParameter
        18(inF1):      7(ptr) FunctionParameter
        19(inF2):      7(ptr) FunctionParameter
        20(inI0):      9(ptr) FunctionParameter
              22:             Label
                              ReturnValue 80
                              FunctionEnd
32(VertexShaderFunction2(vf2;vf2;vf2;vi2;):   23(fvec2) Function None 27
        28(inF0):     24(ptr) FunctionParameter
        29(inF1):     24(ptr) FunctionParameter
        30(inF2):     24(ptr) FunctionParameter
        31(inI0):     26(ptr) FunctionParameter
              33:             Label
                              ReturnValue 87
                              FunctionEnd
43(VertexShaderFunction3(vf3;vf3;vf3;vi3;):   34(fvec3) Function None 38
        39(inF0):     35(ptr) FunctionParameter
        40(inF1):     35(ptr) FunctionParameter
        41(inF2):     35(ptr) FunctionParameter
        42(inI0):     37(ptr) FunctionParameter
              44:             Label
                              ReturnValue 91
                              FunctionEnd
54(@VertexShaderFunction(vf4;vf4;vf4;vi4;):   45(fvec4) Function None 49
        50(inF0):     46(ptr) FunctionParameter
        51(inF1):     46(ptr) FunctionParameter
        52(inF2):     46(ptr) FunctionParameter
        53(inI0):     48(ptr) FunctionParameter
              55:             Label
                              ReturnValue 95
                              FunctionEnd
62(VertexShaderFunction2x2(mf22;mf22;mf22;):          56 Function None 58
        59(inF0):     57(ptr) FunctionParameter
        60(inF1):     57(ptr) FunctionParameter
        61(inF2):     57(ptr) FunctionParameter
              63:             Label
                              ReturnValue 124
                              FunctionEnd
70(VertexShaderFunction3x3(mf33;mf33;mf33;):          64 Function None 66
        67(inF0):     65(ptr) FunctionParameter
        68(inF1):     65(ptr) FunctionParameter
        69(inF2):     65(ptr) FunctionParameter
              71:             Label
                              ReturnValue 128
                              FunctionEnd
78(VertexShaderFunction4x4(mf44;mf44;mf44;):          72 Function None 74
        75(inF0):     73(ptr) FunctionParameter
        76(inF1):     73(ptr) FunctionParameter
        77(inF2):     73(ptr) FunctionParameter
              79:             Label
                              ReturnValue 132
                              FunctionEnd
