hlsl.clipdistance-5.vert
Shader version: 500
0:? Sequence
0:11  Function Definition: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11    Function Parameters: 
0:11      'v' ( const (read only) structure{ temp 4-component vector of float Position})
0:?     Sequence
0:13      move second child to first child ( temp 4-component vector of float)
0:13        Position: direct index for structure ( temp 4-component vector of float)
0:13          'Output' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:13          Constant:
0:13            0 (const int)
0:13        Constant:
0:13          0.000000
0:13          0.000000
0:13          0.000000
0:13          0.000000
0:15      move second child to first child ( temp float)
0:15        direct index ( temp float)
0:15          direct index ( temp 2-component vector of float)
0:15            ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:15              'Output' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:15              Constant:
0:15                1 (const int)
0:15            Constant:
0:15              0 (const int)
0:15          Constant:
0:15            0 (const int)
0:15        Constant:
0:15          1.000000
0:16      move second child to first child ( temp float)
0:16        direct index ( temp float)
0:16          direct index ( temp 2-component vector of float)
0:16            ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:16              'Output' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:16              Constant:
0:16                1 (const int)
0:16            Constant:
0:16              0 (const int)
0:16          Constant:
0:16            1 (const int)
0:16        Constant:
0:16          2.000000
0:17      move second child to first child ( temp float)
0:17        direct index ( temp float)
0:17          direct index ( temp 2-component vector of float)
0:17            ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:17              'Output' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:17              Constant:
0:17                1 (const int)
0:17            Constant:
0:17              1 (const int)
0:17          Constant:
0:17            0 (const int)
0:17        Constant:
0:17          3.000000
0:18      move second child to first child ( temp float)
0:18        direct index ( temp float)
0:18          direct index ( temp 2-component vector of float)
0:18            ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:18              'Output' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:18              Constant:
0:18                1 (const int)
0:18            Constant:
0:18              1 (const int)
0:18          Constant:
0:18            1 (const int)
0:18        Constant:
0:18          4.000000
0:20      Branch: Return with expression
0:20        'Output' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
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 4-component vector of float)
0:11          Position: direct index for structure ( temp 4-component vector of float)
0:?             'v' ( temp structure{ temp 4-component vector of float Position})
0:11            Constant:
0:11              0 (const int)
0:?           'v.Position' (layout( location=0) in 4-component vector of float)
0:11      Sequence
0:11        move second child to first child ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11          'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11          Function Call: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:?             'v' ( temp structure{ temp 4-component vector of float Position})
0:11        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Position' ( out 4-component vector of float Position)
0:11          Position: direct index for structure ( temp 4-component vector of float)
0:11            'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11            Constant:
0:11              0 (const int)
0:?         Sequence
0:11          move second child to first child ( temp float)
0:11            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11              Constant:
0:11                0 (const int)
0:11            direct index ( temp float)
0:11              direct index ( temp 2-component vector of float)
0:11                ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:11                  'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11                  Constant:
0:11                    1 (const int)
0:11                Constant:
0:11                  0 (const int)
0:11              Constant:
0:11                0 (const int)
0:11          move second child to first child ( temp float)
0:11            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11              Constant:
0:11                1 (const int)
0:11            direct index ( temp float)
0:11              direct index ( temp 2-component vector of float)
0:11                ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:11                  'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11                  Constant:
0:11                    1 (const int)
0:11                Constant:
0:11                  0 (const int)
0:11              Constant:
0:11                1 (const int)
0:11          move second child to first child ( temp float)
0:11            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11              Constant:
0:11                2 (const int)
0:11            direct index ( temp float)
0:11              direct index ( temp 2-component vector of float)
0:11                ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:11                  'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11                  Constant:
0:11                    1 (const int)
0:11                Constant:
0:11                  1 (const int)
0:11              Constant:
0:11                0 (const int)
0:11          move second child to first child ( temp float)
0:11            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11              Constant:
0:11                3 (const int)
0:11            direct index ( temp float)
0:11              direct index ( temp 2-component vector of float)
0:11                ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:11                  'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11                  Constant:
0:11                    1 (const int)
0:11                Constant:
0:11                  1 (const int)
0:11              Constant:
0:11                1 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.Position' ( out 4-component vector of float Position)
0:?     'v.Position' (layout( location=0) in 4-component vector of float)
0:?     '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)


Linked vertex stage:


Shader version: 500
0:? Sequence
0:11  Function Definition: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11    Function Parameters: 
0:11      'v' ( const (read only) structure{ temp 4-component vector of float Position})
0:?     Sequence
0:13      move second child to first child ( temp 4-component vector of float)
0:13        Position: direct index for structure ( temp 4-component vector of float)
0:13          'Output' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:13          Constant:
0:13            0 (const int)
0:13        Constant:
0:13          0.000000
0:13          0.000000
0:13          0.000000
0:13          0.000000
0:15      move second child to first child ( temp float)
0:15        direct index ( temp float)
0:15          direct index ( temp 2-component vector of float)
0:15            ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:15              'Output' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:15              Constant:
0:15                1 (const int)
0:15            Constant:
0:15              0 (const int)
0:15          Constant:
0:15            0 (const int)
0:15        Constant:
0:15          1.000000
0:16      move second child to first child ( temp float)
0:16        direct index ( temp float)
0:16          direct index ( temp 2-component vector of float)
0:16            ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:16              'Output' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:16              Constant:
0:16                1 (const int)
0:16            Constant:
0:16              0 (const int)
0:16          Constant:
0:16            1 (const int)
0:16        Constant:
0:16          2.000000
0:17      move second child to first child ( temp float)
0:17        direct index ( temp float)
0:17          direct index ( temp 2-component vector of float)
0:17            ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:17              'Output' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:17              Constant:
0:17                1 (const int)
0:17            Constant:
0:17              1 (const int)
0:17          Constant:
0:17            0 (const int)
0:17        Constant:
0:17          3.000000
0:18      move second child to first child ( temp float)
0:18        direct index ( temp float)
0:18          direct index ( temp 2-component vector of float)
0:18            ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:18              'Output' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:18              Constant:
0:18                1 (const int)
0:18            Constant:
0:18              1 (const int)
0:18          Constant:
0:18            1 (const int)
0:18        Constant:
0:18          4.000000
0:20      Branch: Return with expression
0:20        'Output' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
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 4-component vector of float)
0:11          Position: direct index for structure ( temp 4-component vector of float)
0:?             'v' ( temp structure{ temp 4-component vector of float Position})
0:11            Constant:
0:11              0 (const int)
0:?           'v.Position' (layout( location=0) in 4-component vector of float)
0:11      Sequence
0:11        move second child to first child ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11          'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11          Function Call: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:?             'v' ( temp structure{ temp 4-component vector of float Position})
0:11        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Position' ( out 4-component vector of float Position)
0:11          Position: direct index for structure ( temp 4-component vector of float)
0:11            'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11            Constant:
0:11              0 (const int)
0:?         Sequence
0:11          move second child to first child ( temp float)
0:11            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11              Constant:
0:11                0 (const int)
0:11            direct index ( temp float)
0:11              direct index ( temp 2-component vector of float)
0:11                ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:11                  'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11                  Constant:
0:11                    1 (const int)
0:11                Constant:
0:11                  0 (const int)
0:11              Constant:
0:11                0 (const int)
0:11          move second child to first child ( temp float)
0:11            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11              Constant:
0:11                1 (const int)
0:11            direct index ( temp float)
0:11              direct index ( temp 2-component vector of float)
0:11                ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:11                  'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11                  Constant:
0:11                    1 (const int)
0:11                Constant:
0:11                  0 (const int)
0:11              Constant:
0:11                1 (const int)
0:11          move second child to first child ( temp float)
0:11            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11              Constant:
0:11                2 (const int)
0:11            direct index ( temp float)
0:11              direct index ( temp 2-component vector of float)
0:11                ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:11                  'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11                  Constant:
0:11                    1 (const int)
0:11                Constant:
0:11                  1 (const int)
0:11              Constant:
0:11                0 (const int)
0:11          move second child to first child ( temp float)
0:11            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)
0:11              Constant:
0:11                3 (const int)
0:11            direct index ( temp float)
0:11              direct index ( temp 2-component vector of float)
0:11                ClipRect: direct index for structure ( temp 2-element array of 2-component vector of float)
0:11                  'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 2-element array of 2-component vector of float ClipRect})
0:11                  Constant:
0:11                    1 (const int)
0:11                Constant:
0:11                  1 (const int)
0:11              Constant:
0:11                1 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.Position' ( out 4-component vector of float Position)
0:?     'v.Position' (layout( location=0) in 4-component vector of float)
0:?     '@entryPointOutput.ClipRect' ( out 4-element array of float ClipDistance)

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

                              Capability Shader
                              Capability ClipDistance
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 44 51 57
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "VS_INPUT"
                              MemberName 8(VS_INPUT) 0  "Position"
                              Name 13  "VS_OUTPUT"
                              MemberName 13(VS_OUTPUT) 0  "Position"
                              MemberName 13(VS_OUTPUT) 1  "ClipRect"
                              Name 16  "@main(struct-VS_INPUT-vf41;"
                              Name 15  "v"
                              Name 19  "Output"
                              Name 42  "v"
                              Name 44  "v.Position"
                              Name 47  "flattenTemp"
                              Name 51  "@entryPointOutput.Position"
                              Name 57  "@entryPointOutput.ClipRect"
                              Decorate 44(v.Position) Location 0
                              Decorate 51(@entryPointOutput.Position) BuiltIn Position
                              Decorate 57(@entryPointOutput.ClipRect) BuiltIn ClipDistance
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
     8(VS_INPUT):             TypeStruct 7(fvec4)
               9:             TypeVector 6(float) 2
              10:             TypeInt 32 0
              11:     10(int) Constant 2
              12:             TypeArray 9(fvec2) 11
   13(VS_OUTPUT):             TypeStruct 7(fvec4) 12
              14:             TypeFunction 13(VS_OUTPUT) 8(VS_INPUT)
              18:             TypePointer Function 13(VS_OUTPUT)
              20:             TypeInt 32 1
              21:     20(int) Constant 0
              22:    6(float) Constant 0
              23:    7(fvec4) ConstantComposite 22 22 22 22
              24:             TypePointer Function 7(fvec4)
              26:     20(int) Constant 1
              27:    6(float) Constant 1065353216
              28:     10(int) Constant 0
              29:             TypePointer Function 6(float)
              31:    6(float) Constant 1073741824
              32:     10(int) Constant 1
              34:    6(float) Constant 1077936128
              36:    6(float) Constant 1082130432
              41:             TypePointer Function 8(VS_INPUT)
              43:             TypePointer Input 7(fvec4)
  44(v.Position):     43(ptr) Variable Input
              50:             TypePointer Output 7(fvec4)
51(@entryPointOutput.Position):     50(ptr) Variable Output
              54:     10(int) Constant 4
              55:             TypeArray 6(float) 54
              56:             TypePointer Output 55
57(@entryPointOutput.ClipRect):     56(ptr) Variable Output
              60:             TypePointer Output 6(float)
              65:     20(int) Constant 2
              69:     20(int) Constant 3
         4(main):           2 Function None 3
               5:             Label
           42(v):     41(ptr) Variable Function
 47(flattenTemp):     18(ptr) Variable Function
              45:    7(fvec4) Load 44(v.Position)
              46:     24(ptr) AccessChain 42(v) 21
                              Store 46 45
              48: 8(VS_INPUT) Load 42(v)
              49:13(VS_OUTPUT) FunctionCall 16(@main(struct-VS_INPUT-vf41;) 48
                              Store 47(flattenTemp) 49
              52:     24(ptr) AccessChain 47(flattenTemp) 21
              53:    7(fvec4) Load 52
                              Store 51(@entryPointOutput.Position) 53
              58:     29(ptr) AccessChain 47(flattenTemp) 26 21 28
              59:    6(float) Load 58
              61:     60(ptr) AccessChain 57(@entryPointOutput.ClipRect) 21
                              Store 61 59
              62:     29(ptr) AccessChain 47(flattenTemp) 26 21 32
              63:    6(float) Load 62
              64:     60(ptr) AccessChain 57(@entryPointOutput.ClipRect) 26
                              Store 64 63
              66:     29(ptr) AccessChain 47(flattenTemp) 26 26 28
              67:    6(float) Load 66
              68:     60(ptr) AccessChain 57(@entryPointOutput.ClipRect) 65
                              Store 68 67
              70:     29(ptr) AccessChain 47(flattenTemp) 26 26 32
              71:    6(float) Load 70
              72:     60(ptr) AccessChain 57(@entryPointOutput.ClipRect) 69
                              Store 72 71
                              Return
                              FunctionEnd
16(@main(struct-VS_INPUT-vf41;):13(VS_OUTPUT) Function None 14
           15(v): 8(VS_INPUT) FunctionParameter
              17:             Label
      19(Output):     18(ptr) Variable Function
              25:     24(ptr) AccessChain 19(Output) 21
                              Store 25 23
              30:     29(ptr) AccessChain 19(Output) 26 21 28
                              Store 30 27
              33:     29(ptr) AccessChain 19(Output) 26 21 32
                              Store 33 31
              35:     29(ptr) AccessChain 19(Output) 26 26 28
                              Store 35 34
              37:     29(ptr) AccessChain 19(Output) 26 26 32
                              Store 37 36
              38:13(VS_OUTPUT) Load 19(Output)
                              ReturnValue 38
                              FunctionEnd
