hlsl.discard.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:2  Function Definition: foo(f1; ( temp void)
0:2    Function Parameters: 
0:2      'f' ( in float)
0:?     Sequence
0:3      Test condition and select ( temp void)
0:3        Condition
0:3        Compare Less Than ( temp bool)
0:3          'f' ( in float)
0:3          Constant:
0:3            1.000000
0:3        true case
0:4        Branch: Kill
0:8  Function Definition: @PixelShaderFunction(vf4; ( temp void)
0:8    Function Parameters: 
0:8      'input' ( in 4-component vector of float)
0:?     Sequence
0:9      Function Call: foo(f1; ( temp void)
0:9        direct index ( temp float)
0:9          'input' ( in 4-component vector of float)
0:9          Constant:
0:9            2 (const int)
0:10      Test condition and select ( temp void)
0:10        Condition
0:10        Convert float to bool ( temp bool)
0:10          direct index ( temp float)
0:10            'input' ( in 4-component vector of float)
0:10            Constant:
0:10              0 (const int)
0:10        true case
0:11        Branch: Kill
0:12      Sequence
0:12        move second child to first child ( temp float)
0:12          'f' ( temp float)
0:12          direct index ( temp float)
0:12            'input' ( in 4-component vector of float)
0:12            Constant:
0:12              0 (const int)
0:13      Branch: Kill
0:8  Function Definition: PixelShaderFunction( ( temp void)
0:8    Function Parameters: 
0:?     Sequence
0:8      move second child to first child ( temp 4-component vector of float)
0:?         'input' ( temp 4-component vector of float)
0:?         'input' (layout( location=0) in 4-component vector of float)
0:8      Function Call: @PixelShaderFunction(vf4; ( temp void)
0:?         'input' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'input' (layout( location=0) in 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:2  Function Definition: foo(f1; ( temp void)
0:2    Function Parameters: 
0:2      'f' ( in float)
0:?     Sequence
0:3      Test condition and select ( temp void)
0:3        Condition
0:3        Compare Less Than ( temp bool)
0:3          'f' ( in float)
0:3          Constant:
0:3            1.000000
0:3        true case
0:4        Branch: Kill
0:8  Function Definition: @PixelShaderFunction(vf4; ( temp void)
0:8    Function Parameters: 
0:8      'input' ( in 4-component vector of float)
0:?     Sequence
0:9      Function Call: foo(f1; ( temp void)
0:9        direct index ( temp float)
0:9          'input' ( in 4-component vector of float)
0:9          Constant:
0:9            2 (const int)
0:10      Test condition and select ( temp void)
0:10        Condition
0:10        Convert float to bool ( temp bool)
0:10          direct index ( temp float)
0:10            'input' ( in 4-component vector of float)
0:10            Constant:
0:10              0 (const int)
0:10        true case
0:11        Branch: Kill
0:12      Sequence
0:12        move second child to first child ( temp float)
0:12          'f' ( temp float)
0:12          direct index ( temp float)
0:12            'input' ( in 4-component vector of float)
0:12            Constant:
0:12              0 (const int)
0:13      Branch: Kill
0:8  Function Definition: PixelShaderFunction( ( temp void)
0:8    Function Parameters: 
0:?     Sequence
0:8      move second child to first child ( temp 4-component vector of float)
0:?         'input' ( temp 4-component vector of float)
0:?         'input' (layout( location=0) in 4-component vector of float)
0:8      Function Call: @PixelShaderFunction(vf4; ( temp void)
0:?         'input' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'input' (layout( location=0) in 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 45
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "PixelShaderFunction"
                              Name 10  "foo(f1;"
                              Name 9  "f"
                              Name 16  "@PixelShaderFunction(vf4;"
                              Name 15  "input"
                              Name 25  "param"
                              Name 39  "f"
                              Name 43  "input"
                              Name 45  "input"
                              Name 47  "param"
                              Decorate 45(input) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               8:             TypeFunction 2 7(ptr)
              12:             TypeVector 6(float) 4
              13:             TypePointer Function 12(fvec4)
              14:             TypeFunction 2 13(ptr)
              19:    6(float) Constant 1065353216
              20:             TypeBool
              26:             TypeInt 32 0
              27:     26(int) Constant 2
              31:     26(int) Constant 0
              34:    6(float) Constant 0
              44:             TypePointer Input 12(fvec4)
       45(input):     44(ptr) Variable Input
4(PixelShaderFunction):           2 Function None 3
               5:             Label
       43(input):     13(ptr) Variable Function
       47(param):     13(ptr) Variable Function
              46:   12(fvec4) Load 45(input)
                              Store 43(input) 46
              48:   12(fvec4) Load 43(input)
                              Store 47(param) 48
              49:           2 FunctionCall 16(@PixelShaderFunction(vf4;) 47(param)
                              Return
                              FunctionEnd
     10(foo(f1;):           2 Function None 8
            9(f):      7(ptr) FunctionParameter
              11:             Label
              18:    6(float) Load 9(f)
              21:    20(bool) FOrdLessThan 18 19
                              SelectionMerge 23 None
                              BranchConditional 21 22 23
              22:               Label
                                Kill
              23:             Label
                              Return
                              FunctionEnd
16(@PixelShaderFunction(vf4;):           2 Function None 14
       15(input):     13(ptr) FunctionParameter
              17:             Label
       25(param):      7(ptr) Variable Function
           39(f):      7(ptr) Variable Function
              28:      7(ptr) AccessChain 15(input) 27
              29:    6(float) Load 28
                              Store 25(param) 29
              30:           2 FunctionCall 10(foo(f1;) 25(param)
              32:      7(ptr) AccessChain 15(input) 31
              33:    6(float) Load 32
              35:    20(bool) FOrdNotEqual 33 34
                              SelectionMerge 37 None
                              BranchConditional 35 36 37
              36:               Label
                                Kill
              37:             Label
              40:      7(ptr) AccessChain 15(input) 31
              41:    6(float) Load 40
                              Store 39(f) 41
                              Kill
                              FunctionEnd
