hlsl.if.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:2  Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:2    Function Parameters: 
0:2      'input' ( in 4-component vector of float)
0:?     Sequence
0:3      Test condition and select ( temp void)
0:3        Condition
0:3        all ( temp bool)
0:3          Equal ( temp 4-component vector of bool)
0:3            'input' ( in 4-component vector of float)
0:3            'input' ( in 4-component vector of float)
0:3        true case
0:4        Branch: Return with expression
0:4          'input' ( in 4-component vector of float)
0:6      Test condition and select ( temp void)
0:6        Condition
0:6        all ( temp bool)
0:6          Equal ( temp 4-component vector of bool)
0:6            'input' ( in 4-component vector of float)
0:6            'input' ( in 4-component vector of float)
0:6        true case
0:7        Branch: Return with expression
0:7          'input' ( in 4-component vector of float)
0:6        false case
0:9        Branch: Return with expression
0:9          Negate value ( temp 4-component vector of float)
0:9            'input' ( in 4-component vector of float)
0:11      Test condition and select ( temp void)
0:11        Condition
0:11        all ( temp bool)
0:11          Equal ( temp 4-component vector of bool)
0:11            'input' ( in 4-component vector of float)
0:11            'input' ( in 4-component vector of float)
0:11        true case is null
0:14      Test condition and select ( temp void)
0:14        Condition
0:14        all ( temp bool)
0:14          Equal ( temp 4-component vector of bool)
0:14            'input' ( in 4-component vector of float)
0:14            'input' ( in 4-component vector of float)
0:14        true case is null
0:19      Test condition and select ( temp void): Flatten
0:19        Condition
0:19        all ( temp bool)
0:19          Equal ( temp 4-component vector of bool)
0:19            'input' ( in 4-component vector of float)
0:19            'input' ( in 4-component vector of float)
0:19        true case
0:?         Sequence
0:20          Branch: Return with expression
0:20            'input' ( in 4-component vector of float)
0:23      Test condition and select ( temp void)
0:23        Condition
0:23        all ( temp bool)
0:23          Equal ( temp 4-component vector of bool)
0:23            'input' ( in 4-component vector of float)
0:23            'input' ( in 4-component vector of float)
0:23        true case
0:?         Sequence
0:24          Branch: Return with expression
0:24            'input' ( in 4-component vector of float)
0:23        false case
0:?         Sequence
0:26          Branch: Return with expression
0:26            Negate value ( temp 4-component vector of float)
0:26              'input' ( in 4-component vector of float)
0:30      Test condition and select ( temp void)
0:30        Condition
0:30        Convert float to bool ( temp bool)
0:30          move second child to first child ( temp float)
0:30            'ii' ( temp float)
0:30            direct index ( temp float)
0:30              'input' ( in 4-component vector of float)
0:30              Constant:
0:30                2 (const int)
0:30        true case
0:31        Pre-Increment ( temp float)
0:31          'ii' ( temp float)
0:32      Pre-Increment ( temp int)
0:32        'ii' ( temp int)
0:33      Test condition and select ( temp void)
0:33        Condition
0:33        Compare Equal ( temp bool)
0:33          Convert int to float ( temp float)
0:33            'ii' ( temp int)
0:33          Constant:
0:33            1.000000
0:33        true case
0:34        Pre-Increment ( temp int)
0:34          'ii' ( temp int)
0:2  Function Definition: PixelShaderFunction( ( temp void)
0:2    Function Parameters: 
0:?     Sequence
0:2      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:2      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:2        Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:?           'input' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
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: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:2    Function Parameters: 
0:2      'input' ( in 4-component vector of float)
0:?     Sequence
0:3      Test condition and select ( temp void)
0:3        Condition
0:3        all ( temp bool)
0:3          Equal ( temp 4-component vector of bool)
0:3            'input' ( in 4-component vector of float)
0:3            'input' ( in 4-component vector of float)
0:3        true case
0:4        Branch: Return with expression
0:4          'input' ( in 4-component vector of float)
0:6      Test condition and select ( temp void)
0:6        Condition
0:6        all ( temp bool)
0:6          Equal ( temp 4-component vector of bool)
0:6            'input' ( in 4-component vector of float)
0:6            'input' ( in 4-component vector of float)
0:6        true case
0:7        Branch: Return with expression
0:7          'input' ( in 4-component vector of float)
0:6        false case
0:9        Branch: Return with expression
0:9          Negate value ( temp 4-component vector of float)
0:9            'input' ( in 4-component vector of float)
0:11      Test condition and select ( temp void)
0:11        Condition
0:11        all ( temp bool)
0:11          Equal ( temp 4-component vector of bool)
0:11            'input' ( in 4-component vector of float)
0:11            'input' ( in 4-component vector of float)
0:11        true case is null
0:14      Test condition and select ( temp void)
0:14        Condition
0:14        all ( temp bool)
0:14          Equal ( temp 4-component vector of bool)
0:14            'input' ( in 4-component vector of float)
0:14            'input' ( in 4-component vector of float)
0:14        true case is null
0:19      Test condition and select ( temp void): Flatten
0:19        Condition
0:19        all ( temp bool)
0:19          Equal ( temp 4-component vector of bool)
0:19            'input' ( in 4-component vector of float)
0:19            'input' ( in 4-component vector of float)
0:19        true case
0:?         Sequence
0:20          Branch: Return with expression
0:20            'input' ( in 4-component vector of float)
0:23      Test condition and select ( temp void)
0:23        Condition
0:23        all ( temp bool)
0:23          Equal ( temp 4-component vector of bool)
0:23            'input' ( in 4-component vector of float)
0:23            'input' ( in 4-component vector of float)
0:23        true case
0:?         Sequence
0:24          Branch: Return with expression
0:24            'input' ( in 4-component vector of float)
0:23        false case
0:?         Sequence
0:26          Branch: Return with expression
0:26            Negate value ( temp 4-component vector of float)
0:26              'input' ( in 4-component vector of float)
0:30      Test condition and select ( temp void)
0:30        Condition
0:30        Convert float to bool ( temp bool)
0:30          move second child to first child ( temp float)
0:30            'ii' ( temp float)
0:30            direct index ( temp float)
0:30              'input' ( in 4-component vector of float)
0:30              Constant:
0:30                2 (const int)
0:30        true case
0:31        Pre-Increment ( temp float)
0:31          'ii' ( temp float)
0:32      Pre-Increment ( temp int)
0:32        'ii' ( temp int)
0:33      Test condition and select ( temp void)
0:33        Condition
0:33        Compare Equal ( temp bool)
0:33          Convert int to float ( temp float)
0:33            'ii' ( temp int)
0:33          Constant:
0:33            1.000000
0:33        true case
0:34        Pre-Increment ( temp int)
0:34          'ii' ( temp int)
0:2  Function Definition: PixelShaderFunction( ( temp void)
0:2    Function Parameters: 
0:?     Sequence
0:2      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:2      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:2        Function Call: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
0:?           'input' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'input' (layout( location=0) in 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 96 99
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "PixelShaderFunction"
                              Name 11  "@PixelShaderFunction(vf4;"
                              Name 10  "input"
                              Name 68  "ii"
                              Name 82  "ii"
                              Name 94  "input"
                              Name 96  "input"
                              Name 99  "@entryPointOutput"
                              Name 100  "param"
                              Decorate 96(input) Location 0
                              Decorate 99(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
               9:             TypeFunction 7(fvec4) 8(ptr)
              15:             TypeBool
              16:             TypeVector 15(bool) 4
              67:             TypePointer Function 6(float)
              69:             TypeInt 32 0
              70:     69(int) Constant 2
              73:    6(float) Constant 0
              78:    6(float) Constant 1065353216
              80:             TypeInt 32 1
              81:             TypePointer Function 80(int)
              84:     80(int) Constant 1
              95:             TypePointer Input 7(fvec4)
       96(input):     95(ptr) Variable Input
              98:             TypePointer Output 7(fvec4)
99(@entryPointOutput):     98(ptr) Variable Output
4(PixelShaderFunction):           2 Function None 3
               5:             Label
       94(input):      8(ptr) Variable Function
      100(param):      8(ptr) Variable Function
              97:    7(fvec4) Load 96(input)
                              Store 94(input) 97
             101:    7(fvec4) Load 94(input)
                              Store 100(param) 101
             102:    7(fvec4) FunctionCall 11(@PixelShaderFunction(vf4;) 100(param)
                              Store 99(@entryPointOutput) 102
                              Return
                              FunctionEnd
11(@PixelShaderFunction(vf4;):    7(fvec4) Function None 9
       10(input):      8(ptr) FunctionParameter
              12:             Label
          68(ii):     67(ptr) Variable Function
          82(ii):     81(ptr) Variable Function
              13:    7(fvec4) Load 10(input)
              14:    7(fvec4) Load 10(input)
              17:   16(bvec4) FOrdEqual 13 14
              18:    15(bool) All 17
                              SelectionMerge 20 None
                              BranchConditional 18 19 20
              19:               Label
              21:    7(fvec4)   Load 10(input)
                                ReturnValue 21
              20:             Label
              23:    7(fvec4) Load 10(input)
              24:    7(fvec4) Load 10(input)
              25:   16(bvec4) FOrdEqual 23 24
              26:    15(bool) All 25
                              SelectionMerge 28 None
                              BranchConditional 26 27 31
              27:               Label
              29:    7(fvec4)   Load 10(input)
                                ReturnValue 29
              31:               Label
              32:    7(fvec4)   Load 10(input)
              33:    7(fvec4)   FNegate 32
                                ReturnValue 33
              28:             Label
              35:    7(fvec4) Load 10(input)
              36:    7(fvec4) Load 10(input)
              37:   16(bvec4) FOrdEqual 35 36
              38:    15(bool) All 37
                              SelectionMerge 40 None
                              BranchConditional 38 39 40
              39:               Label
                                Branch 40
              40:             Label
              41:    7(fvec4) Load 10(input)
              42:    7(fvec4) Load 10(input)
              43:   16(bvec4) FOrdEqual 41 42
              44:    15(bool) All 43
                              SelectionMerge 46 None
                              BranchConditional 44 45 46
              45:               Label
                                Branch 46
              46:             Label
              47:    7(fvec4) Load 10(input)
              48:    7(fvec4) Load 10(input)
              49:   16(bvec4) FOrdEqual 47 48
              50:    15(bool) All 49
                              SelectionMerge 52 Flatten 
                              BranchConditional 50 51 52
              51:               Label
              53:    7(fvec4)   Load 10(input)
                                ReturnValue 53
              52:             Label
              55:    7(fvec4) Load 10(input)
              56:    7(fvec4) Load 10(input)
              57:   16(bvec4) FOrdEqual 55 56
              58:    15(bool) All 57
                              SelectionMerge 60 None
                              BranchConditional 58 59 63
              59:               Label
              61:    7(fvec4)   Load 10(input)
                                ReturnValue 61
              63:               Label
              64:    7(fvec4)   Load 10(input)
              65:    7(fvec4)   FNegate 64
                                ReturnValue 65
              60:             Label
              71:     67(ptr) AccessChain 10(input) 70
              72:    6(float) Load 71
                              Store 68(ii) 72
              74:    15(bool) FOrdNotEqual 72 73
                              SelectionMerge 76 None
                              BranchConditional 74 75 76
              75:               Label
              77:    6(float)   Load 68(ii)
              79:    6(float)   FAdd 77 78
                                Store 68(ii) 79
                                Branch 76
              76:             Label
              83:     80(int) Load 82(ii)
              85:     80(int) IAdd 83 84
                              Store 82(ii) 85
              86:     80(int) Load 82(ii)
              87:    6(float) ConvertSToF 86
              88:    15(bool) FOrdEqual 87 78
                              SelectionMerge 90 None
                              BranchConditional 88 89 90
              89:               Label
              91:     80(int)   Load 82(ii)
              92:     80(int)   IAdd 91 84
                                Store 82(ii) 92
                                Branch 90
              90:             Label
              93:    7(fvec4) Undef
                              ReturnValue 93
                              FunctionEnd
