hlsl.discard.frag
Shader version: 450
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' (layout(location=0 ) 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' (layout(location=0 ) 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        direct index (temp float)
0:10          'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float)
0:12            Constant:
0:12              0 (const int)
0:13      Branch: Kill
0:?   Linker Objects
0:?     'input' (layout(location=0 ) in 4-component vector of float)


Linked fragment stage:


Shader version: 450
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' (layout(location=0 ) 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' (layout(location=0 ) 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        direct index (temp float)
0:10          'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float)
0:12            Constant:
0:12              0 (const int)
0:13      Branch: Kill
0:?   Linker Objects
0:?     'input' (layout(location=0 ) in 4-component vector of float)

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

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