hlsl.scalarCast.vert
Shader version: 500
0:? Sequence
0:5  Function Definition: r0( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:5    Function Parameters: 
0:?     Sequence
0:7      Branch: Return with expression
0:7        Constant:
0:7          2.000000
0:7          2.000000
0:7          2.000000
0:7          2.000000
0:7          2.000000
0:7          2.000000
0:9  Function Definition: r1( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:9    Function Parameters: 
0:?     Sequence
0:11      Branch: Return with expression
0:11        Constant:
0:11          3.000000
0:11          3.000000
0:11          3.000000
0:11          3.000000
0:11          3.000000
0:11          3.000000
0:13  Function Definition: r2( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:13    Function Parameters: 
0:?     Sequence
0:15      Branch: Return with expression
0:15        Constant:
0:15          0.909297
0:15          0.909297
0:15          0.909297
0:15          0.909297
0:15          0.909297
0:15          0.909297
0:17  Function Definition: r3( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:17    Function Parameters: 
0:?     Sequence
0:18      Sequence
0:18        move second child to first child ( temp float)
0:18          'f' ( temp float)
0:18          Constant:
0:18            2.000000
0:19      Branch: Return with expression
0:19        Construct structure ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:19          Construct vec4 ( temp 4-component vector of float)
0:19            'f' ( temp float)
0:19            'f' ( temp float)
0:19            'f' ( temp float)
0:19            'f' ( temp float)
0:19          Construct vec2 ( temp 2-component vector of float)
0:19            'f' ( temp float)
0:19            'f' ( temp float)
0:21  Function Definition: r4( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:21    Function Parameters: 
0:?     Sequence
0:22      Sequence
0:22        move second child to first child ( temp float)
0:22          'f' ( temp float)
0:22          Constant:
0:22            2.000000
0:23      Branch: Return with expression
0:23        Comma ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:23          move second child to first child ( temp float)
0:23            'scalarCopy' ( temp float)
0:23            add ( temp float)
0:23              'f' ( temp float)
0:23              Constant:
0:23                1.000000
0:23          Construct structure ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:23            Construct vec4 ( temp 4-component vector of float)
0:23              'scalarCopy' ( temp float)
0:23              'scalarCopy' ( temp float)
0:23              'scalarCopy' ( temp float)
0:23              'scalarCopy' ( temp float)
0:23            Construct vec2 ( temp 2-component vector of float)
0:23              'scalarCopy' ( temp float)
0:23              'scalarCopy' ( temp float)
0:25  Function Definition: r5( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:25    Function Parameters: 
0:?     Sequence
0:26      Sequence
0:26        move second child to first child ( temp float)
0:26          'f' ( temp float)
0:26          Constant:
0:26            2.000000
0:27      Branch: Return with expression
0:27        Comma ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:27          move second child to first child ( temp float)
0:27            'scalarCopy' ( temp float)
0:27            sine ( temp float)
0:27              'f' ( temp float)
0:27          Construct structure ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:27            Construct vec4 ( temp 4-component vector of float)
0:27              'scalarCopy' ( temp float)
0:27              'scalarCopy' ( temp float)
0:27              'scalarCopy' ( temp float)
0:27              'scalarCopy' ( temp float)
0:27            Construct vec2 ( temp 2-component vector of float)
0:27              'scalarCopy' ( temp float)
0:27              'scalarCopy' ( temp float)
0:29  Function Definition: @main( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:29    Function Parameters: 
0:?     Sequence
0:30      Sequence
0:30        move second child to first child ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:30          'v0' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:30          Function Call: r0( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:31      Sequence
0:31        move second child to first child ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:31          'v1' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:31          Function Call: r1( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:32      Sequence
0:32        move second child to first child ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:32          'v2' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:32          Function Call: r2( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:33      Sequence
0:33        move second child to first child ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:33          'v3' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:33          Function Call: r3( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:34      Sequence
0:34        move second child to first child ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:34          'v4' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:34          Function Call: r4( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:35      Sequence
0:35        move second child to first child ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:35          'v5' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:35          Function Call: r5( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:36      Branch: Return with expression
0:36        Constant:
0:36          1.000000
0:36          1.000000
0:36          1.000000
0:36          1.000000
0:36          1.000000
0:36          1.000000
0:29  Function Definition: main( ( temp void)
0:29    Function Parameters: 
0:?     Sequence
0:29      Sequence
0:29        move second child to first child ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:29          'flattenTemp' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:29          Function Call: @main( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:29        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.position' ( out 4-component vector of float Position)
0:29          position: direct index for structure ( temp 4-component vector of float)
0:29            'flattenTemp' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:29            Constant:
0:29              0 (const int)
0:29        move second child to first child ( temp 2-component vector of float)
0:?           '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float)
0:29          texCoord: direct index for structure ( temp 2-component vector of float)
0:29            'flattenTemp' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:29            Constant:
0:29              1 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.position' ( out 4-component vector of float Position)
0:?     '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float)


Linked vertex stage:


Shader version: 500
0:? Sequence
0:5  Function Definition: r0( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:5    Function Parameters: 
0:?     Sequence
0:7      Branch: Return with expression
0:7        Constant:
0:7          2.000000
0:7          2.000000
0:7          2.000000
0:7          2.000000
0:7          2.000000
0:7          2.000000
0:9  Function Definition: r1( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:9    Function Parameters: 
0:?     Sequence
0:11      Branch: Return with expression
0:11        Constant:
0:11          3.000000
0:11          3.000000
0:11          3.000000
0:11          3.000000
0:11          3.000000
0:11          3.000000
0:13  Function Definition: r2( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:13    Function Parameters: 
0:?     Sequence
0:15      Branch: Return with expression
0:15        Constant:
0:15          0.909297
0:15          0.909297
0:15          0.909297
0:15          0.909297
0:15          0.909297
0:15          0.909297
0:17  Function Definition: r3( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:17    Function Parameters: 
0:?     Sequence
0:18      Sequence
0:18        move second child to first child ( temp float)
0:18          'f' ( temp float)
0:18          Constant:
0:18            2.000000
0:19      Branch: Return with expression
0:19        Construct structure ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:19          Construct vec4 ( temp 4-component vector of float)
0:19            'f' ( temp float)
0:19            'f' ( temp float)
0:19            'f' ( temp float)
0:19            'f' ( temp float)
0:19          Construct vec2 ( temp 2-component vector of float)
0:19            'f' ( temp float)
0:19            'f' ( temp float)
0:21  Function Definition: r4( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:21    Function Parameters: 
0:?     Sequence
0:22      Sequence
0:22        move second child to first child ( temp float)
0:22          'f' ( temp float)
0:22          Constant:
0:22            2.000000
0:23      Branch: Return with expression
0:23        Comma ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:23          move second child to first child ( temp float)
0:23            'scalarCopy' ( temp float)
0:23            add ( temp float)
0:23              'f' ( temp float)
0:23              Constant:
0:23                1.000000
0:23          Construct structure ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:23            Construct vec4 ( temp 4-component vector of float)
0:23              'scalarCopy' ( temp float)
0:23              'scalarCopy' ( temp float)
0:23              'scalarCopy' ( temp float)
0:23              'scalarCopy' ( temp float)
0:23            Construct vec2 ( temp 2-component vector of float)
0:23              'scalarCopy' ( temp float)
0:23              'scalarCopy' ( temp float)
0:25  Function Definition: r5( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:25    Function Parameters: 
0:?     Sequence
0:26      Sequence
0:26        move second child to first child ( temp float)
0:26          'f' ( temp float)
0:26          Constant:
0:26            2.000000
0:27      Branch: Return with expression
0:27        Comma ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:27          move second child to first child ( temp float)
0:27            'scalarCopy' ( temp float)
0:27            sine ( temp float)
0:27              'f' ( temp float)
0:27          Construct structure ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:27            Construct vec4 ( temp 4-component vector of float)
0:27              'scalarCopy' ( temp float)
0:27              'scalarCopy' ( temp float)
0:27              'scalarCopy' ( temp float)
0:27              'scalarCopy' ( temp float)
0:27            Construct vec2 ( temp 2-component vector of float)
0:27              'scalarCopy' ( temp float)
0:27              'scalarCopy' ( temp float)
0:29  Function Definition: @main( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:29    Function Parameters: 
0:?     Sequence
0:30      Sequence
0:30        move second child to first child ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:30          'v0' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:30          Function Call: r0( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:31      Sequence
0:31        move second child to first child ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:31          'v1' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:31          Function Call: r1( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:32      Sequence
0:32        move second child to first child ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:32          'v2' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:32          Function Call: r2( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:33      Sequence
0:33        move second child to first child ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:33          'v3' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:33          Function Call: r3( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:34      Sequence
0:34        move second child to first child ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:34          'v4' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:34          Function Call: r4( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:35      Sequence
0:35        move second child to first child ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:35          'v5' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:35          Function Call: r5( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:36      Branch: Return with expression
0:36        Constant:
0:36          1.000000
0:36          1.000000
0:36          1.000000
0:36          1.000000
0:36          1.000000
0:36          1.000000
0:29  Function Definition: main( ( temp void)
0:29    Function Parameters: 
0:?     Sequence
0:29      Sequence
0:29        move second child to first child ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:29          'flattenTemp' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:29          Function Call: @main( ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:29        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.position' ( out 4-component vector of float Position)
0:29          position: direct index for structure ( temp 4-component vector of float)
0:29            'flattenTemp' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:29            Constant:
0:29              0 (const int)
0:29        move second child to first child ( temp 2-component vector of float)
0:?           '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float)
0:29          texCoord: direct index for structure ( temp 2-component vector of float)
0:29            'flattenTemp' ( temp structure{ temp 4-component vector of float position,  temp 2-component vector of float texCoord})
0:29            Constant:
0:29              1 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.position' ( out 4-component vector of float Position)
0:?     '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 108 115
                              Source HLSL 500
                              Name 4  "main"
                              Name 9  "VertexOut"
                              MemberName 9(VertexOut) 0  "position"
                              MemberName 9(VertexOut) 1  "texCoord"
                              Name 11  "r0("
                              Name 13  "r1("
                              Name 15  "r2("
                              Name 17  "r3("
                              Name 19  "r4("
                              Name 21  "r5("
                              Name 23  "@main("
                              Name 44  "f"
                              Name 56  "f"
                              Name 57  "scalarCopy"
                              Name 72  "f"
                              Name 73  "scalarCopy"
                              Name 88  "v0"
                              Name 90  "v1"
                              Name 92  "v2"
                              Name 94  "v3"
                              Name 96  "v4"
                              Name 98  "v5"
                              Name 105  "flattenTemp"
                              Name 108  "@entryPointOutput.position"
                              Name 115  "@entryPointOutput.texCoord"
                              Decorate 108(@entryPointOutput.position) BuiltIn Position
                              Decorate 115(@entryPointOutput.texCoord) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeVector 6(float) 2
    9(VertexOut):             TypeStruct 7(fvec4) 8(fvec2)
              10:             TypeFunction 9(VertexOut)
              25:    6(float) Constant 1073741824
              26:    7(fvec4) ConstantComposite 25 25 25 25
              27:    8(fvec2) ConstantComposite 25 25
              28:9(VertexOut) ConstantComposite 26 27
              31:    6(float) Constant 1077936128
              32:    7(fvec4) ConstantComposite 31 31 31 31
              33:    8(fvec2) ConstantComposite 31 31
              34:9(VertexOut) ConstantComposite 32 33
              37:    6(float) Constant 1063831479
              38:    7(fvec4) ConstantComposite 37 37 37 37
              39:    8(fvec2) ConstantComposite 37 37
              40:9(VertexOut) ConstantComposite 38 39
              43:             TypePointer Function 6(float)
              59:    6(float) Constant 1065353216
              87:             TypePointer Function 9(VertexOut)
             100:    7(fvec4) ConstantComposite 59 59 59 59
             101:    8(fvec2) ConstantComposite 59 59
             102:9(VertexOut) ConstantComposite 100 101
             107:             TypePointer Output 7(fvec4)
108(@entryPointOutput.position):    107(ptr) Variable Output
             109:             TypeInt 32 1
             110:    109(int) Constant 0
             111:             TypePointer Function 7(fvec4)
             114:             TypePointer Output 8(fvec2)
115(@entryPointOutput.texCoord):    114(ptr) Variable Output
             116:    109(int) Constant 1
             117:             TypePointer Function 8(fvec2)
         4(main):           2 Function None 3
               5:             Label
105(flattenTemp):     87(ptr) Variable Function
             106:9(VertexOut) FunctionCall 23(@main()
                              Store 105(flattenTemp) 106
             112:    111(ptr) AccessChain 105(flattenTemp) 110
             113:    7(fvec4) Load 112
                              Store 108(@entryPointOutput.position) 113
             118:    117(ptr) AccessChain 105(flattenTemp) 116
             119:    8(fvec2) Load 118
                              Store 115(@entryPointOutput.texCoord) 119
                              Return
                              FunctionEnd
         11(r0():9(VertexOut) Function None 10
              12:             Label
                              ReturnValue 28
                              FunctionEnd
         13(r1():9(VertexOut) Function None 10
              14:             Label
                              ReturnValue 34
                              FunctionEnd
         15(r2():9(VertexOut) Function None 10
              16:             Label
                              ReturnValue 40
                              FunctionEnd
         17(r3():9(VertexOut) Function None 10
              18:             Label
           44(f):     43(ptr) Variable Function
                              Store 44(f) 25
              45:    6(float) Load 44(f)
              46:    6(float) Load 44(f)
              47:    6(float) Load 44(f)
              48:    6(float) Load 44(f)
              49:    7(fvec4) CompositeConstruct 45 46 47 48
              50:    6(float) Load 44(f)
              51:    6(float) Load 44(f)
              52:    8(fvec2) CompositeConstruct 50 51
              53:9(VertexOut) CompositeConstruct 49 52
                              ReturnValue 53
                              FunctionEnd
         19(r4():9(VertexOut) Function None 10
              20:             Label
           56(f):     43(ptr) Variable Function
  57(scalarCopy):     43(ptr) Variable Function
                              Store 56(f) 25
              58:    6(float) Load 56(f)
              60:    6(float) FAdd 58 59
                              Store 57(scalarCopy) 60
              61:    6(float) Load 57(scalarCopy)
              62:    6(float) Load 57(scalarCopy)
              63:    6(float) Load 57(scalarCopy)
              64:    6(float) Load 57(scalarCopy)
              65:    7(fvec4) CompositeConstruct 61 62 63 64
              66:    6(float) Load 57(scalarCopy)
              67:    6(float) Load 57(scalarCopy)
              68:    8(fvec2) CompositeConstruct 66 67
              69:9(VertexOut) CompositeConstruct 65 68
                              ReturnValue 69
                              FunctionEnd
         21(r5():9(VertexOut) Function None 10
              22:             Label
           72(f):     43(ptr) Variable Function
  73(scalarCopy):     43(ptr) Variable Function
                              Store 72(f) 25
              74:    6(float) Load 72(f)
              75:    6(float) ExtInst 1(GLSL.std.450) 13(Sin) 74
                              Store 73(scalarCopy) 75
              76:    6(float) Load 73(scalarCopy)
              77:    6(float) Load 73(scalarCopy)
              78:    6(float) Load 73(scalarCopy)
              79:    6(float) Load 73(scalarCopy)
              80:    7(fvec4) CompositeConstruct 76 77 78 79
              81:    6(float) Load 73(scalarCopy)
              82:    6(float) Load 73(scalarCopy)
              83:    8(fvec2) CompositeConstruct 81 82
              84:9(VertexOut) CompositeConstruct 80 83
                              ReturnValue 84
                              FunctionEnd
      23(@main():9(VertexOut) Function None 10
              24:             Label
          88(v0):     87(ptr) Variable Function
          90(v1):     87(ptr) Variable Function
          92(v2):     87(ptr) Variable Function
          94(v3):     87(ptr) Variable Function
          96(v4):     87(ptr) Variable Function
          98(v5):     87(ptr) Variable Function
              89:9(VertexOut) FunctionCall 11(r0()
                              Store 88(v0) 89
              91:9(VertexOut) FunctionCall 13(r1()
                              Store 90(v1) 91
              93:9(VertexOut) FunctionCall 15(r2()
                              Store 92(v2) 93
              95:9(VertexOut) FunctionCall 17(r3()
                              Store 94(v3) 95
              97:9(VertexOut) FunctionCall 19(r4()
                              Store 96(v4) 97
              99:9(VertexOut) FunctionCall 21(r5()
                              Store 98(v5) 99
                              ReturnValue 102
                              FunctionEnd
