hlsl.implicitBool.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:7  Function Definition: @main( ( temp 4-component vector of float)
0:7    Function Parameters: 
0:?     Sequence
0:8      Sequence
0:8        move second child to first child ( temp 4-component vector of float)
0:8          'a' ( temp 4-component vector of float)
0:?           Constant:
0:?             2.000000
0:?             2.000000
0:?             2.000000
0:?             2.000000
0:9      Test condition and select ( temp void)
0:9        Condition
0:9        Convert int to bool ( temp bool)
0:9          condi: direct index for structure ( uniform int)
0:9            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:9            Constant:
0:9              1 (const uint)
0:9        true case
0:10        Branch: Return with expression
0:10          add ( temp 4-component vector of float)
0:10            'a' ( temp 4-component vector of float)
0:10            Constant:
0:10              1.000000
0:11      Test condition and select ( temp void)
0:11        Condition
0:11        Convert float to bool ( temp bool)
0:11          condf: direct index for structure ( uniform float)
0:11            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:11            Constant:
0:11              0 (const uint)
0:11        true case
0:12        Branch: Return with expression
0:12          add ( temp 4-component vector of float)
0:12            'a' ( temp 4-component vector of float)
0:12            Constant:
0:12              2.000000
0:13      Test condition and select ( temp void)
0:13        Condition
0:13        Convert float to bool ( temp bool)
0:13          condf1: direct index for structure ( uniform 1-component vector of float)
0:13            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:13            Constant:
0:13              2 (const uint)
0:13        true case
0:14        Branch: Return with expression
0:14          add ( temp 4-component vector of float)
0:14            'a' ( temp 4-component vector of float)
0:14            Constant:
0:14              3.000000
0:15      Test condition and select ( temp void)
0:15        Condition
0:15        Convert int to bool ( temp bool)
0:15          condi1: direct index for structure ( uniform 1-component vector of int)
0:15            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:15            Constant:
0:15              3 (const uint)
0:15        true case
0:16        Branch: Return with expression
0:16          add ( temp 4-component vector of float)
0:16            'a' ( temp 4-component vector of float)
0:16            Constant:
0:16              4.000000
0:17      Test condition and select ( temp void)
0:17        Condition
0:17        logical-or ( temp bool)
0:17          logical-and ( temp bool)
0:17            Convert int to bool ( temp bool)
0:17              condi: direct index for structure ( uniform int)
0:17                'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:17                Constant:
0:17                  1 (const uint)
0:17            Convert float to bool ( temp bool)
0:17              condf: direct index for structure ( uniform float)
0:17                'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:17                Constant:
0:17                  0 (const uint)
0:17          Convert float to bool ( temp bool)
0:17            condf1: direct index for structure ( uniform 1-component vector of float)
0:17              'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:17              Constant:
0:17                2 (const uint)
0:17        true case
0:18        Branch: Return with expression
0:18          add ( temp 4-component vector of float)
0:18            'a' ( temp 4-component vector of float)
0:18            Constant:
0:18              5.000000
0:20      Sequence
0:20        move second child to first child ( temp float)
0:20          'f' ( temp float)
0:20          condf: direct index for structure ( uniform float)
0:20            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:20            Constant:
0:20              0 (const uint)
0:21      Loop with condition tested first
0:21        Loop Condition
0:21        Convert float to bool ( temp bool)
0:21          'f' ( temp float)
0:21        Loop Body
0:?         Sequence
0:21          Pre-Decrement ( temp float)
0:21            'f' ( temp float)
0:23      Sequence
0:23        move second child to first child ( temp int)
0:23          'i' ( temp int)
0:23          condi: direct index for structure ( uniform int)
0:23            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:23            Constant:
0:23              1 (const uint)
0:24      Loop with condition not tested first
0:24        Loop Condition
0:24        Convert int to bool ( temp bool)
0:24          'i' ( temp int)
0:24        Loop Body
0:?         Sequence
0:24          Pre-Decrement ( temp int)
0:24            'i' ( temp int)
0:?       Sequence
0:26        Loop with condition tested first
0:26          Loop Condition
0:26          Convert int to bool ( temp bool)
0:26            'i' ( temp int)
0:26          Loop Body
0:?           Sequence
0:26            Pre-Decrement ( temp int)
0:26              'i' ( temp int)
0:28      Sequence
0:28        move second child to first child ( temp float)
0:28          'g' ( temp float)
0:28          Test condition and select ( temp float): no shortcircuit
0:28            Condition
0:28            Convert float to bool ( temp bool)
0:28              condf: direct index for structure ( uniform float)
0:28                'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:28                Constant:
0:28                  0 (const uint)
0:28            true case
0:28            Constant:
0:28              7.000000
0:28            false case
0:28            Constant:
0:28              8.000000
0:29      add second child into first child ( temp 4-component vector of float)
0:29        'a' ( temp 4-component vector of float)
0:29        'g' ( temp float)
0:31      Branch: Return with expression
0:31        subtract ( temp 4-component vector of float)
0:31          'a' ( temp 4-component vector of float)
0:31          Constant:
0:31            1.000000
0:7  Function Definition: main( ( temp void)
0:7    Function Parameters: 
0:?     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        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:7  Function Definition: @main( ( temp 4-component vector of float)
0:7    Function Parameters: 
0:?     Sequence
0:8      Sequence
0:8        move second child to first child ( temp 4-component vector of float)
0:8          'a' ( temp 4-component vector of float)
0:?           Constant:
0:?             2.000000
0:?             2.000000
0:?             2.000000
0:?             2.000000
0:9      Test condition and select ( temp void)
0:9        Condition
0:9        Convert int to bool ( temp bool)
0:9          condi: direct index for structure ( uniform int)
0:9            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:9            Constant:
0:9              1 (const uint)
0:9        true case
0:10        Branch: Return with expression
0:10          add ( temp 4-component vector of float)
0:10            'a' ( temp 4-component vector of float)
0:10            Constant:
0:10              1.000000
0:11      Test condition and select ( temp void)
0:11        Condition
0:11        Convert float to bool ( temp bool)
0:11          condf: direct index for structure ( uniform float)
0:11            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:11            Constant:
0:11              0 (const uint)
0:11        true case
0:12        Branch: Return with expression
0:12          add ( temp 4-component vector of float)
0:12            'a' ( temp 4-component vector of float)
0:12            Constant:
0:12              2.000000
0:13      Test condition and select ( temp void)
0:13        Condition
0:13        Convert float to bool ( temp bool)
0:13          condf1: direct index for structure ( uniform 1-component vector of float)
0:13            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:13            Constant:
0:13              2 (const uint)
0:13        true case
0:14        Branch: Return with expression
0:14          add ( temp 4-component vector of float)
0:14            'a' ( temp 4-component vector of float)
0:14            Constant:
0:14              3.000000
0:15      Test condition and select ( temp void)
0:15        Condition
0:15        Convert int to bool ( temp bool)
0:15          condi1: direct index for structure ( uniform 1-component vector of int)
0:15            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:15            Constant:
0:15              3 (const uint)
0:15        true case
0:16        Branch: Return with expression
0:16          add ( temp 4-component vector of float)
0:16            'a' ( temp 4-component vector of float)
0:16            Constant:
0:16              4.000000
0:17      Test condition and select ( temp void)
0:17        Condition
0:17        logical-or ( temp bool)
0:17          logical-and ( temp bool)
0:17            Convert int to bool ( temp bool)
0:17              condi: direct index for structure ( uniform int)
0:17                'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:17                Constant:
0:17                  1 (const uint)
0:17            Convert float to bool ( temp bool)
0:17              condf: direct index for structure ( uniform float)
0:17                'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:17                Constant:
0:17                  0 (const uint)
0:17          Convert float to bool ( temp bool)
0:17            condf1: direct index for structure ( uniform 1-component vector of float)
0:17              'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:17              Constant:
0:17                2 (const uint)
0:17        true case
0:18        Branch: Return with expression
0:18          add ( temp 4-component vector of float)
0:18            'a' ( temp 4-component vector of float)
0:18            Constant:
0:18              5.000000
0:20      Sequence
0:20        move second child to first child ( temp float)
0:20          'f' ( temp float)
0:20          condf: direct index for structure ( uniform float)
0:20            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:20            Constant:
0:20              0 (const uint)
0:21      Loop with condition tested first
0:21        Loop Condition
0:21        Convert float to bool ( temp bool)
0:21          'f' ( temp float)
0:21        Loop Body
0:?         Sequence
0:21          Pre-Decrement ( temp float)
0:21            'f' ( temp float)
0:23      Sequence
0:23        move second child to first child ( temp int)
0:23          'i' ( temp int)
0:23          condi: direct index for structure ( uniform int)
0:23            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:23            Constant:
0:23              1 (const uint)
0:24      Loop with condition not tested first
0:24        Loop Condition
0:24        Convert int to bool ( temp bool)
0:24          'i' ( temp int)
0:24        Loop Body
0:?         Sequence
0:24          Pre-Decrement ( temp int)
0:24            'i' ( temp int)
0:?       Sequence
0:26        Loop with condition tested first
0:26          Loop Condition
0:26          Convert int to bool ( temp bool)
0:26            'i' ( temp int)
0:26          Loop Body
0:?           Sequence
0:26            Pre-Decrement ( temp int)
0:26              'i' ( temp int)
0:28      Sequence
0:28        move second child to first child ( temp float)
0:28          'g' ( temp float)
0:28          Test condition and select ( temp float): no shortcircuit
0:28            Condition
0:28            Convert float to bool ( temp bool)
0:28              condf: direct index for structure ( uniform float)
0:28                'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:28                Constant:
0:28                  0 (const uint)
0:28            true case
0:28            Constant:
0:28              7.000000
0:28            false case
0:28            Constant:
0:28              8.000000
0:29      add second child into first child ( temp 4-component vector of float)
0:29        'a' ( temp 4-component vector of float)
0:29        'g' ( temp float)
0:31      Branch: Return with expression
0:31        subtract ( temp 4-component vector of float)
0:31          'a' ( temp 4-component vector of float)
0:31          Constant:
0:31            1.000000
0:7  Function Definition: main( ( temp void)
0:7    Function Parameters: 
0:?     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        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 137
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 9  "@main("
                              Name 12  "a"
                              Name 16  "$Global"
                              MemberName 16($Global) 0  "condf"
                              MemberName 16($Global) 1  "condi"
                              MemberName 16($Global) 2  "condf1"
                              MemberName 16($Global) 3  "condi1"
                              Name 18  ""
                              Name 87  "f"
                              Name 100  "i"
                              Name 120  "g"
                              Name 137  "@entryPointOutput"
                              MemberDecorate 16($Global) 0 Offset 0
                              MemberDecorate 16($Global) 1 Offset 4
                              MemberDecorate 16($Global) 2 Offset 8
                              MemberDecorate 16($Global) 3 Offset 12
                              Decorate 16($Global) Block
                              Decorate 18 DescriptorSet 0
                              Decorate 18 Binding 0
                              Decorate 137(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeFunction 7(fvec4)
              11:             TypePointer Function 7(fvec4)
              13:    6(float) Constant 1073741824
              14:    7(fvec4) ConstantComposite 13 13 13 13
              15:             TypeInt 32 1
     16($Global):             TypeStruct 6(float) 15(int) 6(float) 15(int)
              17:             TypePointer Uniform 16($Global)
              18:     17(ptr) Variable Uniform
              19:     15(int) Constant 1
              20:             TypePointer Uniform 15(int)
              23:             TypeBool
              24:             TypeInt 32 0
              25:     24(int) Constant 0
              30:    6(float) Constant 1065353216
              34:     15(int) Constant 0
              35:             TypePointer Uniform 6(float)
              38:    6(float) Constant 0
              46:     15(int) Constant 2
              53:    6(float) Constant 1077936128
              57:     15(int) Constant 3
              64:    6(float) Constant 1082130432
              82:    6(float) Constant 1084227584
              86:             TypePointer Function 6(float)
              99:             TypePointer Function 15(int)
             124:    6(float) Constant 1088421888
             125:    6(float) Constant 1090519040
             136:             TypePointer Output 7(fvec4)
137(@entryPointOutput):    136(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
             138:    7(fvec4) FunctionCall 9(@main()
                              Store 137(@entryPointOutput) 138
                              Return
                              FunctionEnd
       9(@main():    7(fvec4) Function None 8
              10:             Label
           12(a):     11(ptr) Variable Function
           87(f):     86(ptr) Variable Function
          100(i):     99(ptr) Variable Function
          120(g):     86(ptr) Variable Function
                              Store 12(a) 14
              21:     20(ptr) AccessChain 18 19
              22:     15(int) Load 21
              26:    23(bool) INotEqual 22 25
                              SelectionMerge 28 None
                              BranchConditional 26 27 28
              27:               Label
              29:    7(fvec4)   Load 12(a)
              31:    7(fvec4)   CompositeConstruct 30 30 30 30
              32:    7(fvec4)   FAdd 29 31
                                ReturnValue 32
              28:             Label
              36:     35(ptr) AccessChain 18 34
              37:    6(float) Load 36
              39:    23(bool) FOrdNotEqual 37 38
                              SelectionMerge 41 None
                              BranchConditional 39 40 41
              40:               Label
              42:    7(fvec4)   Load 12(a)
              43:    7(fvec4)   CompositeConstruct 13 13 13 13
              44:    7(fvec4)   FAdd 42 43
                                ReturnValue 44
              41:             Label
              47:     35(ptr) AccessChain 18 46
              48:    6(float) Load 47
              49:    23(bool) FOrdNotEqual 48 38
                              SelectionMerge 51 None
                              BranchConditional 49 50 51
              50:               Label
              52:    7(fvec4)   Load 12(a)
              54:    7(fvec4)   CompositeConstruct 53 53 53 53
              55:    7(fvec4)   FAdd 52 54
                                ReturnValue 55
              51:             Label
              58:     20(ptr) AccessChain 18 57
              59:     15(int) Load 58
              60:    23(bool) INotEqual 59 25
                              SelectionMerge 62 None
                              BranchConditional 60 61 62
              61:               Label
              63:    7(fvec4)   Load 12(a)
              65:    7(fvec4)   CompositeConstruct 64 64 64 64
              66:    7(fvec4)   FAdd 63 65
                                ReturnValue 66
              62:             Label
              68:     20(ptr) AccessChain 18 19
              69:     15(int) Load 68
              70:    23(bool) INotEqual 69 25
              71:     35(ptr) AccessChain 18 34
              72:    6(float) Load 71
              73:    23(bool) FOrdNotEqual 72 38
              74:    23(bool) LogicalAnd 70 73
              75:     35(ptr) AccessChain 18 46
              76:    6(float) Load 75
              77:    23(bool) FOrdNotEqual 76 38
              78:    23(bool) LogicalOr 74 77
                              SelectionMerge 80 None
                              BranchConditional 78 79 80
              79:               Label
              81:    7(fvec4)   Load 12(a)
              83:    7(fvec4)   CompositeConstruct 82 82 82 82
              84:    7(fvec4)   FAdd 81 83
                                ReturnValue 84
              80:             Label
              88:     35(ptr) AccessChain 18 34
              89:    6(float) Load 88
                              Store 87(f) 89
                              Branch 90
              90:             Label
                              LoopMerge 92 93 None
                              Branch 94
              94:             Label
              95:    6(float) Load 87(f)
              96:    23(bool) FOrdNotEqual 95 38
                              BranchConditional 96 91 92
              91:               Label
              97:    6(float)   Load 87(f)
              98:    6(float)   FSub 97 30
                                Store 87(f) 98
                                Branch 93
              93:               Label
                                Branch 90
              92:             Label
             101:     20(ptr) AccessChain 18 19
             102:     15(int) Load 101
                              Store 100(i) 102
                              Branch 103
             103:             Label
                              LoopMerge 105 106 None
                              Branch 104
             104:             Label
             107:     15(int) Load 100(i)
             108:     15(int) ISub 107 19
                              Store 100(i) 108
                              Branch 106
             106:             Label
             109:     15(int) Load 100(i)
             110:    23(bool) INotEqual 109 25
                              BranchConditional 110 103 105
             105:             Label
                              Branch 111
             111:             Label
                              LoopMerge 113 114 None
                              Branch 115
             115:             Label
             116:     15(int) Load 100(i)
             117:    23(bool) INotEqual 116 25
                              BranchConditional 117 112 113
             112:               Label
             118:     15(int)   Load 100(i)
             119:     15(int)   ISub 118 19
                                Store 100(i) 119
                                Branch 114
             114:               Label
                                Branch 111
             113:             Label
             121:     35(ptr) AccessChain 18 34
             122:    6(float) Load 121
             123:    23(bool) FOrdNotEqual 122 38
             126:    6(float) Select 123 124 125
                              Store 120(g) 126
             127:    6(float) Load 120(g)
             128:    7(fvec4) Load 12(a)
             129:    7(fvec4) CompositeConstruct 127 127 127 127
             130:    7(fvec4) FAdd 128 129
                              Store 12(a) 130
             131:    7(fvec4) Load 12(a)
             132:    7(fvec4) CompositeConstruct 30 30 30 30
             133:    7(fvec4) FSub 131 132
                              ReturnValue 133
                              FunctionEnd