hlsl.clipdistance-4.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 4-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 4-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          ClipRect: direct index for structure ( temp 4-component vector of float)
0:15            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-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          1.000000
0:16      move second child to first child ( temp float)
0:16        direct index ( temp float)
0:16          ClipRect: direct index for structure ( temp 4-component vector of float)
0:16            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
0:16            Constant:
0:16              1 (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          ClipRect: direct index for structure ( temp 4-component vector of float)
0:17            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
0:17            Constant:
0:17              1 (const int)
0:17          Constant:
0:17            2 (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          ClipRect: direct index for structure ( temp 4-component vector of float)
0:18            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
0:18            Constant:
0:18              1 (const int)
0:18          Constant:
0:18            3 (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 4-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 4-component vector of float ClipRect})
0:11          'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
0:11          Function Call: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position,  temp 4-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 4-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              ClipRect: direct index for structure ( temp 4-component vector of float)
0:11                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
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                1 (const int)
0:11            direct index ( temp float)
0:11              ClipRect: direct index for structure ( temp 4-component vector of float)
0:11                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
0:11                Constant:
0:11                  1 (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              ClipRect: direct index for structure ( temp 4-component vector of float)
0:11                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
0:11                Constant:
0:11                  1 (const int)
0:11              Constant:
0:11                2 (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              ClipRect: direct index for structure ( temp 4-component vector of float)
0:11                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
0:11                Constant:
0:11                  1 (const int)
0:11              Constant:
0:11                3 (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 4-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 4-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          ClipRect: direct index for structure ( temp 4-component vector of float)
0:15            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-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          1.000000
0:16      move second child to first child ( temp float)
0:16        direct index ( temp float)
0:16          ClipRect: direct index for structure ( temp 4-component vector of float)
0:16            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
0:16            Constant:
0:16              1 (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          ClipRect: direct index for structure ( temp 4-component vector of float)
0:17            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
0:17            Constant:
0:17              1 (const int)
0:17          Constant:
0:17            2 (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          ClipRect: direct index for structure ( temp 4-component vector of float)
0:18            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
0:18            Constant:
0:18              1 (const int)
0:18          Constant:
0:18            3 (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 4-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 4-component vector of float ClipRect})
0:11          'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
0:11          Function Call: @main(struct-VS_INPUT-vf41; ( temp structure{ temp 4-component vector of float Position,  temp 4-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 4-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              ClipRect: direct index for structure ( temp 4-component vector of float)
0:11                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
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                1 (const int)
0:11            direct index ( temp float)
0:11              ClipRect: direct index for structure ( temp 4-component vector of float)
0:11                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
0:11                Constant:
0:11                  1 (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              ClipRect: direct index for structure ( temp 4-component vector of float)
0:11                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
0:11                Constant:
0:11                  1 (const int)
0:11              Constant:
0:11                2 (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              ClipRect: direct index for structure ( temp 4-component vector of float)
0:11                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float ClipRect})
0:11                Constant:
0:11                  1 (const int)
0:11              Constant:
0:11                3 (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 72

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