hlsl.clipdistance-9.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:6  Function Definition: @main(vf4;vf3;f1; ( temp 4-component vector of float)
0:6    Function Parameters: 
0:6      'Position' ( in 4-component vector of float)
0:6      'clip0' ( in 3-component vector of float)
0:6      'clip1' ( in float)
0:?     Sequence
0:7      Branch: Return with expression
0:7        add ( temp 4-component vector of float)
0:7          add ( temp 4-component vector of float)
0:7            'Position' ( in 4-component vector of float)
0:7            direct index ( temp float)
0:7              'clip0' ( in 3-component vector of float)
0:7              Constant:
0:7                0 (const int)
0:7          'clip1' ( in float)
0:6  Function Definition: main( ( temp void)
0:6    Function Parameters: 
0:?     Sequence
0:6      move second child to first child ( temp 4-component vector of float)
0:?         'Position' ( temp 4-component vector of float)
0:?         'Position' ( in 4-component vector of float FragCoord)
0:?       Sequence
0:6        move second child to first child ( temp float)
0:6          direct index ( temp float)
0:?             'clip0' ( temp 3-component vector of float)
0:6            Constant:
0:6              0 (const int)
0:6          direct index ( in float ClipDistance)
0:?             'clip0' ( in 4-element array of float ClipDistance)
0:6            Constant:
0:6              0 (const int)
0:6        move second child to first child ( temp float)
0:6          direct index ( temp float)
0:?             'clip0' ( temp 3-component vector of float)
0:6            Constant:
0:6              1 (const int)
0:6          direct index ( in float ClipDistance)
0:?             'clip0' ( in 4-element array of float ClipDistance)
0:6            Constant:
0:6              1 (const int)
0:6        move second child to first child ( temp float)
0:6          direct index ( temp float)
0:?             'clip0' ( temp 3-component vector of float)
0:6            Constant:
0:6              2 (const int)
0:6          direct index ( in float ClipDistance)
0:?             'clip0' ( in 4-element array of float ClipDistance)
0:6            Constant:
0:6              2 (const int)
0:?       Sequence
0:6        move second child to first child ( temp float)
0:?           'clip1' ( temp float)
0:6          direct index ( in float ClipDistance)
0:?             'clip0' ( in 4-element array of float ClipDistance)
0:6            Constant:
0:6              3 (const int)
0:6      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:6        Function Call: @main(vf4;vf3;f1; ( temp 4-component vector of float)
0:?           'Position' ( temp 4-component vector of float)
0:?           'clip0' ( temp 3-component vector of float)
0:?           'clip1' ( temp float)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'Position' ( in 4-component vector of float FragCoord)
0:?     'clip0' ( in 4-element array of float ClipDistance)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:6  Function Definition: @main(vf4;vf3;f1; ( temp 4-component vector of float)
0:6    Function Parameters: 
0:6      'Position' ( in 4-component vector of float)
0:6      'clip0' ( in 3-component vector of float)
0:6      'clip1' ( in float)
0:?     Sequence
0:7      Branch: Return with expression
0:7        add ( temp 4-component vector of float)
0:7          add ( temp 4-component vector of float)
0:7            'Position' ( in 4-component vector of float)
0:7            direct index ( temp float)
0:7              'clip0' ( in 3-component vector of float)
0:7              Constant:
0:7                0 (const int)
0:7          'clip1' ( in float)
0:6  Function Definition: main( ( temp void)
0:6    Function Parameters: 
0:?     Sequence
0:6      move second child to first child ( temp 4-component vector of float)
0:?         'Position' ( temp 4-component vector of float)
0:?         'Position' ( in 4-component vector of float FragCoord)
0:?       Sequence
0:6        move second child to first child ( temp float)
0:6          direct index ( temp float)
0:?             'clip0' ( temp 3-component vector of float)
0:6            Constant:
0:6              0 (const int)
0:6          direct index ( in float ClipDistance)
0:?             'clip0' ( in 4-element array of float ClipDistance)
0:6            Constant:
0:6              0 (const int)
0:6        move second child to first child ( temp float)
0:6          direct index ( temp float)
0:?             'clip0' ( temp 3-component vector of float)
0:6            Constant:
0:6              1 (const int)
0:6          direct index ( in float ClipDistance)
0:?             'clip0' ( in 4-element array of float ClipDistance)
0:6            Constant:
0:6              1 (const int)
0:6        move second child to first child ( temp float)
0:6          direct index ( temp float)
0:?             'clip0' ( temp 3-component vector of float)
0:6            Constant:
0:6              2 (const int)
0:6          direct index ( in float ClipDistance)
0:?             'clip0' ( in 4-element array of float ClipDistance)
0:6            Constant:
0:6              2 (const int)
0:?       Sequence
0:6        move second child to first child ( temp float)
0:?           'clip1' ( temp float)
0:6          direct index ( in float ClipDistance)
0:?             'clip0' ( in 4-element array of float ClipDistance)
0:6            Constant:
0:6              3 (const int)
0:6      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:6        Function Call: @main(vf4;vf3;f1; ( temp 4-component vector of float)
0:?           'Position' ( temp 4-component vector of float)
0:?           'clip0' ( temp 3-component vector of float)
0:?           'clip1' ( temp float)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'Position' ( in 4-component vector of float FragCoord)
0:?     'clip0' ( in 4-element array of float ClipDistance)

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

                              Capability Shader
                              Capability ClipDistance
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 32 38 60
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 16  "@main(vf4;vf3;f1;"
                              Name 13  "Position"
                              Name 14  "clip0"
                              Name 15  "clip1"
                              Name 30  "Position"
                              Name 32  "Position"
                              Name 34  "clip0"
                              Name 38  "clip0"
                              Name 55  "clip1"
                              Name 60  "@entryPointOutput"
                              Name 61  "param"
                              Name 63  "param"
                              Name 65  "param"
                              Decorate 32(Position) BuiltIn FragCoord
                              Decorate 38(clip0) BuiltIn ClipDistance
                              Decorate 60(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
               9:             TypeVector 6(float) 3
              10:             TypePointer Function 9(fvec3)
              11:             TypePointer Function 6(float)
              12:             TypeFunction 7(fvec4) 8(ptr) 10(ptr) 11(ptr)
              19:             TypeInt 32 0
              20:     19(int) Constant 0
              31:             TypePointer Input 7(fvec4)
    32(Position):     31(ptr) Variable Input
              35:     19(int) Constant 4
              36:             TypeArray 6(float) 35
              37:             TypePointer Input 36
       38(clip0):     37(ptr) Variable Input
              39:             TypeInt 32 1
              40:     39(int) Constant 0
              41:             TypePointer Input 6(float)
              45:     39(int) Constant 1
              48:     19(int) Constant 1
              50:     39(int) Constant 2
              53:     19(int) Constant 2
              56:     39(int) Constant 3
              59:             TypePointer Output 7(fvec4)
60(@entryPointOutput):     59(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
    30(Position):      8(ptr) Variable Function
       34(clip0):     10(ptr) Variable Function
       55(clip1):     11(ptr) Variable Function
       61(param):      8(ptr) Variable Function
       63(param):     10(ptr) Variable Function
       65(param):     11(ptr) Variable Function
              33:    7(fvec4) Load 32(Position)
                              Store 30(Position) 33
              42:     41(ptr) AccessChain 38(clip0) 40
              43:    6(float) Load 42
              44:     11(ptr) AccessChain 34(clip0) 20
                              Store 44 43
              46:     41(ptr) AccessChain 38(clip0) 45
              47:    6(float) Load 46
              49:     11(ptr) AccessChain 34(clip0) 48
                              Store 49 47
              51:     41(ptr) AccessChain 38(clip0) 50
              52:    6(float) Load 51
              54:     11(ptr) AccessChain 34(clip0) 53
                              Store 54 52
              57:     41(ptr) AccessChain 38(clip0) 56
              58:    6(float) Load 57
                              Store 55(clip1) 58
              62:    7(fvec4) Load 30(Position)
                              Store 61(param) 62
              64:    9(fvec3) Load 34(clip0)
                              Store 63(param) 64
              66:    6(float) Load 55(clip1)
                              Store 65(param) 66
              67:    7(fvec4) FunctionCall 16(@main(vf4;vf3;f1;) 61(param) 63(param) 65(param)
                              Store 60(@entryPointOutput) 67
                              Return
                              FunctionEnd
16(@main(vf4;vf3;f1;):    7(fvec4) Function None 12
    13(Position):      8(ptr) FunctionParameter
       14(clip0):     10(ptr) FunctionParameter
       15(clip1):     11(ptr) FunctionParameter
              17:             Label
              18:    7(fvec4) Load 13(Position)
              21:     11(ptr) AccessChain 14(clip0) 20
              22:    6(float) Load 21
              23:    7(fvec4) CompositeConstruct 22 22 22 22
              24:    7(fvec4) FAdd 18 23
              25:    6(float) Load 15(clip1)
              26:    7(fvec4) CompositeConstruct 25 25 25 25
              27:    7(fvec4) FAdd 24 26
                              ReturnValue 27
                              FunctionEnd
