hlsl.logical.binary.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:12  Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:12    Function Parameters: 
0:?     Sequence
0:13      Test condition and select (temp void)
0:13        Condition
0:13        logical-and (temp bool)
0:13          Convert int to bool (temp bool)
0:13            ival: direct index for structure (layout(offset=0 ) uniform int)
0:13              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
0:13              Constant:
0:13                0 (const uint)
0:13          Convert int to bool (temp bool)
0:13            Convert float to int (temp int)
0:13              fval: direct index for structure (layout(offset=32 ) uniform float)
0:13                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
0:13                Constant:
0:13                  2 (const uint)
0:13        true case is null
0:14      Test condition and select (temp void)
0:14        Condition
0:14        logical-or (temp bool)
0:14          Convert int to bool (temp bool)
0:14            ival: direct index for structure (layout(offset=0 ) uniform int)
0:14              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
0:14              Constant:
0:14                0 (const uint)
0:14          Convert int to bool (temp bool)
0:14            Convert float to int (temp int)
0:14              fval: direct index for structure (layout(offset=32 ) uniform float)
0:14                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
0:14                Constant:
0:14                  2 (const uint)
0:14        true case is null
0:17      move second child to first child (temp 4-component vector of float)
0:17        Color: direct index for structure (temp 4-component vector of float)
0:17          'psout' (temp structure{temp 4-component vector of float Color})
0:17          Constant:
0:17            0 (const int)
0:17        Constant:
0:17          1.000000
0:17          1.000000
0:17          1.000000
0:17          1.000000
0:18      Sequence
0:18        Sequence
0:18          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:18            Color: direct index for structure (temp 4-component vector of float)
0:18              'psout' (temp structure{temp 4-component vector of float Color})
0:18              Constant:
0:18                0 (const int)
0:18        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:12  Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:12    Function Parameters: 
0:?     Sequence
0:13      Test condition and select (temp void)
0:13        Condition
0:13        logical-and (temp bool)
0:13          Convert int to bool (temp bool)
0:13            ival: direct index for structure (layout(offset=0 ) uniform int)
0:13              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
0:13              Constant:
0:13                0 (const uint)
0:13          Convert int to bool (temp bool)
0:13            Convert float to int (temp int)
0:13              fval: direct index for structure (layout(offset=32 ) uniform float)
0:13                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
0:13                Constant:
0:13                  2 (const uint)
0:13        true case is null
0:14      Test condition and select (temp void)
0:14        Condition
0:14        logical-or (temp bool)
0:14          Convert int to bool (temp bool)
0:14            ival: direct index for structure (layout(offset=0 ) uniform int)
0:14              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
0:14              Constant:
0:14                0 (const uint)
0:14          Convert int to bool (temp bool)
0:14            Convert float to int (temp int)
0:14              fval: direct index for structure (layout(offset=32 ) uniform float)
0:14                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})
0:14                Constant:
0:14                  2 (const uint)
0:14        true case is null
0:17      move second child to first child (temp 4-component vector of float)
0:17        Color: direct index for structure (temp 4-component vector of float)
0:17          'psout' (temp structure{temp 4-component vector of float Color})
0:17          Constant:
0:17            0 (const int)
0:17        Constant:
0:17          1.000000
0:17          1.000000
0:17          1.000000
0:17          1.000000
0:18      Sequence
0:18        Sequence
0:18          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:18            Color: direct index for structure (temp 4-component vector of float)
0:18              'psout' (temp structure{temp 4-component vector of float Color})
0:18              Constant:
0:18                0 (const int)
0:18        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4})

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 53
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 11  "$Global"
                              MemberName 11($Global) 0  "ival"
                              MemberName 11($Global) 1  "ival4"
                              MemberName 11($Global) 2  "fval"
                              MemberName 11($Global) 3  "fval4"
                              Name 13  ""
                              Name 45  "PS_OUTPUT"
                              MemberName 45(PS_OUTPUT) 0  "Color"
                              Name 47  "psout"
                              Name 53  "Color"
                              MemberDecorate 11($Global) 0 Offset 0
                              MemberDecorate 11($Global) 1 Offset 16
                              MemberDecorate 11($Global) 2 Offset 32
                              MemberDecorate 11($Global) 3 Offset 48
                              Decorate 11($Global) Block
                              Decorate 13 DescriptorSet 0
                              Decorate 53(Color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeBool
               7:             TypeInt 32 1
               8:             TypeVector 7(int) 4
               9:             TypeFloat 32
              10:             TypeVector 9(float) 4
     11($Global):             TypeStruct 7(int) 8(ivec4) 9(float) 10(fvec4)
              12:             TypePointer Uniform 11($Global)
              13:     12(ptr) Variable Uniform
              14:      7(int) Constant 0
              15:             TypePointer Uniform 7(int)
              18:             TypeInt 32 0
              19:     18(int) Constant 0
              23:      7(int) Constant 2
              24:             TypePointer Uniform 9(float)
   45(PS_OUTPUT):             TypeStruct 10(fvec4)
              46:             TypePointer Function 45(PS_OUTPUT)
              48:    9(float) Constant 1065353216
              49:   10(fvec4) ConstantComposite 48 48 48 48
              50:             TypePointer Function 10(fvec4)
              52:             TypePointer Output 10(fvec4)
       53(Color):     52(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
       47(psout):     46(ptr) Variable Function
              16:     15(ptr) AccessChain 13 14
              17:      7(int) Load 16
              20:     6(bool) INotEqual 17 19
                              SelectionMerge 22 None
                              BranchConditional 20 21 22
              21:               Label
              25:     24(ptr)   AccessChain 13 23
              26:    9(float)   Load 25
              27:      7(int)   ConvertFToS 26
              28:     6(bool)   INotEqual 27 19
                                Branch 22
              22:             Label
              29:     6(bool) Phi 20 5 28 21
                              SelectionMerge 31 None
                              BranchConditional 29 30 31
              30:               Label
                                Branch 31
              31:             Label
              32:     15(ptr) AccessChain 13 14
              33:      7(int) Load 32
              34:     6(bool) INotEqual 33 19
              35:     6(bool) LogicalNot 34
                              SelectionMerge 37 None
                              BranchConditional 35 36 37
              36:               Label
              38:     24(ptr)   AccessChain 13 23
              39:    9(float)   Load 38
              40:      7(int)   ConvertFToS 39
              41:     6(bool)   INotEqual 40 19
                                Branch 37
              37:             Label
              42:     6(bool) Phi 34 31 41 36
                              SelectionMerge 44 None
                              BranchConditional 42 43 44
              43:               Label
                                Branch 44
              44:             Label
              51:     50(ptr) AccessChain 47(psout) 14
                              Store 51 49
              54:     50(ptr) AccessChain 47(psout) 14
              55:   10(fvec4) Load 54
                              Store 53(Color) 55
                              Return
                              FunctionEnd
