hlsl.if.frag
Shader version: 450
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' (layout(location=0 ) in 4-component vector of float)
0:?     Sequence
0:3      Test condition and select (temp void)
0:3        Condition
0:3        Compare Equal (temp bool)
0:3          'input' (layout(location=0 ) in 4-component vector of float)
0:3          'input' (layout(location=0 ) in 4-component vector of float)
0:3        true case
0:4        Sequence
0:4          move second child to first child (temp 4-component vector of float)
0:?             '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:4            'input' (layout(location=0 ) in 4-component vector of float)
0:4          Branch: Return
0:6      Test condition and select (temp void)
0:6        Condition
0:6        Compare Equal (temp bool)
0:6          'input' (layout(location=0 ) in 4-component vector of float)
0:6          'input' (layout(location=0 ) in 4-component vector of float)
0:6        true case
0:7        Sequence
0:7          move second child to first child (temp 4-component vector of float)
0:?             '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:7            'input' (layout(location=0 ) in 4-component vector of float)
0:7          Branch: Return
0:6        false case
0:9        Sequence
0:9          move second child to first child (temp 4-component vector of float)
0:?             '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:9            Negate value (temp 4-component vector of float)
0:9              'input' (layout(location=0 ) in 4-component vector of float)
0:9          Branch: Return
0:11      Test condition and select (temp void)
0:11        Condition
0:11        Compare Equal (temp bool)
0:11          'input' (layout(location=0 ) in 4-component vector of float)
0:11          'input' (layout(location=0 ) 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        Compare Equal (temp bool)
0:14          'input' (layout(location=0 ) in 4-component vector of float)
0:14          'input' (layout(location=0 ) in 4-component vector of float)
0:14        true case is null
0:19      Test condition and select (temp void)
0:19        Condition
0:19        Compare Equal (temp bool)
0:19          'input' (layout(location=0 ) in 4-component vector of float)
0:19          'input' (layout(location=0 ) in 4-component vector of float)
0:19        true case
0:?         Sequence
0:20          Sequence
0:20            move second child to first child (temp 4-component vector of float)
0:?               '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:20              'input' (layout(location=0 ) in 4-component vector of float)
0:20            Branch: Return
0:23      Test condition and select (temp void)
0:23        Condition
0:23        Compare Equal (temp bool)
0:23          'input' (layout(location=0 ) in 4-component vector of float)
0:23          'input' (layout(location=0 ) in 4-component vector of float)
0:23        true case
0:?         Sequence
0:24          Sequence
0:24            move second child to first child (temp 4-component vector of float)
0:?               '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:24              'input' (layout(location=0 ) in 4-component vector of float)
0:24            Branch: Return
0:23        false case
0:?         Sequence
0:26          Sequence
0:26            move second child to first child (temp 4-component vector of float)
0:?               '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:26              Negate value (temp 4-component vector of float)
0:26                'input' (layout(location=0 ) in 4-component vector of float)
0:26            Branch: Return
0:30      Test condition and select (temp void)
0:30        Condition
0:30        move second child to first child (temp float)
0:30          'ii' (temp float)
0:30          direct index (temp float)
0:30            'input' (layout(location=0 ) 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:?   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: 450
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' (layout(location=0 ) in 4-component vector of float)
0:?     Sequence
0:3      Test condition and select (temp void)
0:3        Condition
0:3        Compare Equal (temp bool)
0:3          'input' (layout(location=0 ) in 4-component vector of float)
0:3          'input' (layout(location=0 ) in 4-component vector of float)
0:3        true case
0:4        Sequence
0:4          move second child to first child (temp 4-component vector of float)
0:?             '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:4            'input' (layout(location=0 ) in 4-component vector of float)
0:4          Branch: Return
0:6      Test condition and select (temp void)
0:6        Condition
0:6        Compare Equal (temp bool)
0:6          'input' (layout(location=0 ) in 4-component vector of float)
0:6          'input' (layout(location=0 ) in 4-component vector of float)
0:6        true case
0:7        Sequence
0:7          move second child to first child (temp 4-component vector of float)
0:?             '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:7            'input' (layout(location=0 ) in 4-component vector of float)
0:7          Branch: Return
0:6        false case
0:9        Sequence
0:9          move second child to first child (temp 4-component vector of float)
0:?             '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:9            Negate value (temp 4-component vector of float)
0:9              'input' (layout(location=0 ) in 4-component vector of float)
0:9          Branch: Return
0:11      Test condition and select (temp void)
0:11        Condition
0:11        Compare Equal (temp bool)
0:11          'input' (layout(location=0 ) in 4-component vector of float)
0:11          'input' (layout(location=0 ) 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        Compare Equal (temp bool)
0:14          'input' (layout(location=0 ) in 4-component vector of float)
0:14          'input' (layout(location=0 ) in 4-component vector of float)
0:14        true case is null
0:19      Test condition and select (temp void)
0:19        Condition
0:19        Compare Equal (temp bool)
0:19          'input' (layout(location=0 ) in 4-component vector of float)
0:19          'input' (layout(location=0 ) in 4-component vector of float)
0:19        true case
0:?         Sequence
0:20          Sequence
0:20            move second child to first child (temp 4-component vector of float)
0:?               '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:20              'input' (layout(location=0 ) in 4-component vector of float)
0:20            Branch: Return
0:23      Test condition and select (temp void)
0:23        Condition
0:23        Compare Equal (temp bool)
0:23          'input' (layout(location=0 ) in 4-component vector of float)
0:23          'input' (layout(location=0 ) in 4-component vector of float)
0:23        true case
0:?         Sequence
0:24          Sequence
0:24            move second child to first child (temp 4-component vector of float)
0:?               '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:24              'input' (layout(location=0 ) in 4-component vector of float)
0:24            Branch: Return
0:23        false case
0:?         Sequence
0:26          Sequence
0:26            move second child to first child (temp 4-component vector of float)
0:?               '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:26              Negate value (temp 4-component vector of float)
0:26                'input' (layout(location=0 ) in 4-component vector of float)
0:26            Branch: Return
0:30      Test condition and select (temp void)
0:30        Condition
0:30        move second child to first child (temp float)
0:30          'ii' (temp float)
0:30          direct index (temp float)
0:30            'input' (layout(location=0 ) 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:?   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): 80001
// Id's are bound by 84

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 9 19
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "PixelShaderFunction"
                              Name 9  "input"
                              Name 19  "@entryPointOutput"
                              Name 67  "ii"
                              Name 80  "ii"
                              Decorate 9(input) Location 0
                              Decorate 19(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Input 7(fvec4)
        9(input):      8(ptr) Variable Input
              12:             TypeBool
              13:             TypeVector 12(bool) 4
              18:             TypePointer Output 7(fvec4)
19(@entryPointOutput):     18(ptr) Variable Output
              66:             TypePointer Function 6(float)
              68:             TypeInt 32 0
              69:     68(int) Constant 2
              70:             TypePointer Input 6(float)
              76:    6(float) Constant 1065353216
              78:             TypeInt 32 1
              79:             TypePointer Function 78(int)
              82:     78(int) Constant 1
4(PixelShaderFunction):           2 Function None 3
               5:             Label
          67(ii):     66(ptr) Variable Function
          80(ii):     79(ptr) Variable Function
              10:    7(fvec4) Load 9(input)
              11:    7(fvec4) Load 9(input)
              14:   13(bvec4) FOrdEqual 10 11
              15:    12(bool) All 14
                              SelectionMerge 17 None
                              BranchConditional 15 16 17
              16:               Label
              20:    7(fvec4)   Load 9(input)
                                Store 19(@entryPointOutput) 20
                                Return
              17:             Label
              22:    7(fvec4) Load 9(input)
              23:    7(fvec4) Load 9(input)
              24:   13(bvec4) FOrdEqual 22 23
              25:    12(bool) All 24
                              SelectionMerge 27 None
                              BranchConditional 25 26 30
              26:               Label
              28:    7(fvec4)   Load 9(input)
                                Store 19(@entryPointOutput) 28
                                Return
              30:               Label
              31:    7(fvec4)   Load 9(input)
              32:    7(fvec4)   FNegate 31
                                Store 19(@entryPointOutput) 32
                                Return
              27:             Label
              34:    7(fvec4) Load 9(input)
              35:    7(fvec4) Load 9(input)
              36:   13(bvec4) FOrdEqual 34 35
              37:    12(bool) All 36
                              SelectionMerge 39 None
                              BranchConditional 37 38 39
              38:               Label
                                Branch 39
              39:             Label
              40:    7(fvec4) Load 9(input)
              41:    7(fvec4) Load 9(input)
              42:   13(bvec4) FOrdEqual 40 41
              43:    12(bool) All 42
                              SelectionMerge 45 None
                              BranchConditional 43 44 45
              44:               Label
                                Branch 45
              45:             Label
              46:    7(fvec4) Load 9(input)
              47:    7(fvec4) Load 9(input)
              48:   13(bvec4) FOrdEqual 46 47
              49:    12(bool) All 48
                              SelectionMerge 51 None
                              BranchConditional 49 50 51
              50:               Label
              52:    7(fvec4)   Load 9(input)
                                Store 19(@entryPointOutput) 52
                                Return
              51:             Label
              54:    7(fvec4) Load 9(input)
              55:    7(fvec4) Load 9(input)
              56:   13(bvec4) FOrdEqual 54 55
              57:    12(bool) All 56
                              SelectionMerge 59 None
                              BranchConditional 57 58 62
              58:               Label
              60:    7(fvec4)   Load 9(input)
                                Store 19(@entryPointOutput) 60
                                Return
              62:               Label
              63:    7(fvec4)   Load 9(input)
              64:    7(fvec4)   FNegate 63
                                Store 19(@entryPointOutput) 64
                                Return
              59:             Label
              71:     70(ptr) AccessChain 9(input) 69
              72:    6(float) Load 71
                              Store 67(ii) 72
                              SelectionMerge 74 None
                              BranchConditional 72 73 74
              73:               Label
              75:    6(float)   Load 67(ii)
              77:    6(float)   FAdd 75 76
                                Store 67(ii) 77
                                Branch 74
              74:             Label
              81:     78(int) Load 80(ii)
              83:     78(int) IAdd 81 82
                              Store 80(ii) 83
                              Return
                              FunctionEnd
