hlsl.logical.binary.vec.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:10  Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:10    Function Parameters: 
0:?     Sequence
0:11      Sequence
0:11        move second child to first child (temp 4-component vector of bool)
0:11          'r00' (temp 4-component vector of bool)
0:11          Negate conditional (temp 4-component vector of bool)
0:11            b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
0:11              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:11              Constant:
0:11                0 (const uint)
0:12      Sequence
0:12        move second child to first child (temp 4-component vector of bool)
0:12          'r01' (temp 4-component vector of bool)
0:12          logical-and (temp 4-component vector of bool)
0:12            b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
0:12              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:12              Constant:
0:12                0 (const uint)
0:12            b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
0:12              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:12              Constant:
0:12                1 (const uint)
0:13      Sequence
0:13        move second child to first child (temp 4-component vector of bool)
0:13          'r02' (temp 4-component vector of bool)
0:13          logical-or (temp 4-component vector of bool)
0:13            b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
0:13              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:13              Constant:
0:13                0 (const uint)
0:13            b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
0:13              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:13              Constant:
0:13                1 (const uint)
0:15      Sequence
0:15        move second child to first child (temp 4-component vector of bool)
0:15          'r10' (temp 4-component vector of bool)
0:15          logical-and (temp 4-component vector of bool)
0:15            Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool)
0:15              b1a: direct index for structure (layout(offset=32 ) uniform bool)
0:15                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:15                Constant:
0:15                  2 (const uint)
0:15            b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
0:15              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:15              Constant:
0:15                1 (const uint)
0:16      Sequence
0:16        move second child to first child (temp 4-component vector of bool)
0:16          'r11' (temp 4-component vector of bool)
0:16          logical-or (temp 4-component vector of bool)
0:16            Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool)
0:16              b1a: direct index for structure (layout(offset=32 ) uniform bool)
0:16                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:16                Constant:
0:16                  2 (const uint)
0:16            b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
0:16              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:16              Constant:
0:16                1 (const uint)
0:18      Sequence
0:18        move second child to first child (temp 4-component vector of bool)
0:18          'r20' (temp 4-component vector of bool)
0:18          logical-and (temp 4-component vector of bool)
0:18            b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
0:18              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:18              Constant:
0:18                0 (const uint)
0:18            Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool)
0:18              b1b: direct index for structure (layout(offset=36 ) uniform bool)
0:18                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:18                Constant:
0:18                  3 (const uint)
0:19      Sequence
0:19        move second child to first child (temp 4-component vector of bool)
0:19          'r21' (temp 4-component vector of bool)
0:19          logical-or (temp 4-component vector of bool)
0:19            b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
0:19              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:19              Constant:
0:19                0 (const uint)
0:19            Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool)
0:19              b1b: direct index for structure (layout(offset=36 ) uniform bool)
0:19                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:19                Constant:
0:19                  3 (const uint)
0:22      move second child to first child (temp 4-component vector of float)
0:22        Color: direct index for structure (temp 4-component vector of float)
0:22          'psout' (temp structure{temp 4-component vector of float Color})
0:22          Constant:
0:22            0 (const int)
0:22        Convert bool to float (temp 4-component vector of float)
0:22          logical-or (temp 4-component vector of bool)
0:22            logical-or (temp 4-component vector of bool)
0:22              logical-or (temp 4-component vector of bool)
0:22                logical-or (temp 4-component vector of bool)
0:22                  logical-or (temp 4-component vector of bool)
0:22                    logical-or (temp 4-component vector of bool)
0:22                      'r00' (temp 4-component vector of bool)
0:22                      'r01' (temp 4-component vector of bool)
0:22                    'r02' (temp 4-component vector of bool)
0:22                  'r10' (temp 4-component vector of bool)
0:22                'r11' (temp 4-component vector of bool)
0:22              'r20' (temp 4-component vector of bool)
0:22            'r21' (temp 4-component vector of bool)
0:23      Sequence
0:23        Sequence
0:23          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:23            Color: direct index for structure (temp 4-component vector of float)
0:23              'psout' (temp structure{temp 4-component vector of float Color})
0:23              Constant:
0:23                0 (const int)
0:23        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:10  Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:10    Function Parameters: 
0:?     Sequence
0:11      Sequence
0:11        move second child to first child (temp 4-component vector of bool)
0:11          'r00' (temp 4-component vector of bool)
0:11          Negate conditional (temp 4-component vector of bool)
0:11            b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
0:11              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:11              Constant:
0:11                0 (const uint)
0:12      Sequence
0:12        move second child to first child (temp 4-component vector of bool)
0:12          'r01' (temp 4-component vector of bool)
0:12          logical-and (temp 4-component vector of bool)
0:12            b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
0:12              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:12              Constant:
0:12                0 (const uint)
0:12            b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
0:12              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:12              Constant:
0:12                1 (const uint)
0:13      Sequence
0:13        move second child to first child (temp 4-component vector of bool)
0:13          'r02' (temp 4-component vector of bool)
0:13          logical-or (temp 4-component vector of bool)
0:13            b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
0:13              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:13              Constant:
0:13                0 (const uint)
0:13            b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
0:13              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:13              Constant:
0:13                1 (const uint)
0:15      Sequence
0:15        move second child to first child (temp 4-component vector of bool)
0:15          'r10' (temp 4-component vector of bool)
0:15          logical-and (temp 4-component vector of bool)
0:15            Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool)
0:15              b1a: direct index for structure (layout(offset=32 ) uniform bool)
0:15                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:15                Constant:
0:15                  2 (const uint)
0:15            b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
0:15              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:15              Constant:
0:15                1 (const uint)
0:16      Sequence
0:16        move second child to first child (temp 4-component vector of bool)
0:16          'r11' (temp 4-component vector of bool)
0:16          logical-or (temp 4-component vector of bool)
0:16            Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool)
0:16              b1a: direct index for structure (layout(offset=32 ) uniform bool)
0:16                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:16                Constant:
0:16                  2 (const uint)
0:16            b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
0:16              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:16              Constant:
0:16                1 (const uint)
0:18      Sequence
0:18        move second child to first child (temp 4-component vector of bool)
0:18          'r20' (temp 4-component vector of bool)
0:18          logical-and (temp 4-component vector of bool)
0:18            b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
0:18              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:18              Constant:
0:18                0 (const uint)
0:18            Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool)
0:18              b1b: direct index for structure (layout(offset=36 ) uniform bool)
0:18                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:18                Constant:
0:18                  3 (const uint)
0:19      Sequence
0:19        move second child to first child (temp 4-component vector of bool)
0:19          'r21' (temp 4-component vector of bool)
0:19          logical-or (temp 4-component vector of bool)
0:19            b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool)
0:19              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:19              Constant:
0:19                0 (const uint)
0:19            Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool)
0:19              b1b: direct index for structure (layout(offset=36 ) uniform bool)
0:19                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})
0:19                Constant:
0:19                  3 (const uint)
0:22      move second child to first child (temp 4-component vector of float)
0:22        Color: direct index for structure (temp 4-component vector of float)
0:22          'psout' (temp structure{temp 4-component vector of float Color})
0:22          Constant:
0:22            0 (const int)
0:22        Convert bool to float (temp 4-component vector of float)
0:22          logical-or (temp 4-component vector of bool)
0:22            logical-or (temp 4-component vector of bool)
0:22              logical-or (temp 4-component vector of bool)
0:22                logical-or (temp 4-component vector of bool)
0:22                  logical-or (temp 4-component vector of bool)
0:22                    logical-or (temp 4-component vector of bool)
0:22                      'r00' (temp 4-component vector of bool)
0:22                      'r01' (temp 4-component vector of bool)
0:22                    'r02' (temp 4-component vector of bool)
0:22                  'r10' (temp 4-component vector of bool)
0:22                'r11' (temp 4-component vector of bool)
0:22              'r20' (temp 4-component vector of bool)
0:22            'r21' (temp 4-component vector of bool)
0:23      Sequence
0:23        Sequence
0:23          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:23            Color: direct index for structure (temp 4-component vector of float)
0:23              'psout' (temp structure{temp 4-component vector of float Color})
0:23              Constant:
0:23                0 (const int)
0:23        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b})

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 111
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 9  "r00"
                              Name 12  "$Global"
                              MemberName 12($Global) 0  "b4a"
                              MemberName 12($Global) 1  "b4b"
                              MemberName 12($Global) 2  "b1a"
                              MemberName 12($Global) 3  "b1b"
                              Name 14  ""
                              Name 24  "r01"
                              Name 33  "r02"
                              Name 41  "r10"
                              Name 52  "r11"
                              Name 61  "r20"
                              Name 73  "r21"
                              Name 87  "PS_OUTPUT"
                              MemberName 87(PS_OUTPUT) 0  "Color"
                              Name 89  "psout"
                              Name 111  "Color"
                              MemberDecorate 12($Global) 0 Offset 0
                              MemberDecorate 12($Global) 1 Offset 16
                              MemberDecorate 12($Global) 2 Offset 32
                              MemberDecorate 12($Global) 3 Offset 36
                              Decorate 12($Global) Block
                              Decorate 14 DescriptorSet 0
                              Decorate 111(Color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeBool
               7:             TypeVector 6(bool) 4
               8:             TypePointer Function 7(bvec4)
              10:             TypeInt 32 0
              11:             TypeVector 10(int) 4
     12($Global):             TypeStruct 11(ivec4) 11(ivec4) 10(int) 10(int)
              13:             TypePointer Uniform 12($Global)
              14:     13(ptr) Variable Uniform
              15:             TypeInt 32 1
              16:     15(int) Constant 0
              17:             TypePointer Uniform 11(ivec4)
              20:     10(int) Constant 0
              21:   11(ivec4) ConstantComposite 20 20 20 20
              28:     15(int) Constant 1
              42:     15(int) Constant 2
              43:             TypePointer Uniform 10(int)
              67:     15(int) Constant 3
              85:             TypeFloat 32
              86:             TypeVector 85(float) 4
   87(PS_OUTPUT):             TypeStruct 86(fvec4)
              88:             TypePointer Function 87(PS_OUTPUT)
             103:   85(float) Constant 0
             104:   85(float) Constant 1065353216
             105:   86(fvec4) ConstantComposite 103 103 103 103
             106:   86(fvec4) ConstantComposite 104 104 104 104
             108:             TypePointer Function 86(fvec4)
             110:             TypePointer Output 86(fvec4)
      111(Color):    110(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
          9(r00):      8(ptr) Variable Function
         24(r01):      8(ptr) Variable Function
         33(r02):      8(ptr) Variable Function
         41(r10):      8(ptr) Variable Function
         52(r11):      8(ptr) Variable Function
         61(r20):      8(ptr) Variable Function
         73(r21):      8(ptr) Variable Function
       89(psout):     88(ptr) Variable Function
              18:     17(ptr) AccessChain 14 16
              19:   11(ivec4) Load 18
              22:    7(bvec4) INotEqual 19 21
              23:    7(bvec4) LogicalNot 22
                              Store 9(r00) 23
              25:     17(ptr) AccessChain 14 16
              26:   11(ivec4) Load 25
              27:    7(bvec4) INotEqual 26 21
              29:     17(ptr) AccessChain 14 28
              30:   11(ivec4) Load 29
              31:    7(bvec4) INotEqual 30 21
              32:    7(bvec4) LogicalAnd 27 31
                              Store 24(r01) 32
              34:     17(ptr) AccessChain 14 16
              35:   11(ivec4) Load 34
              36:    7(bvec4) INotEqual 35 21
              37:     17(ptr) AccessChain 14 28
              38:   11(ivec4) Load 37
              39:    7(bvec4) INotEqual 38 21
              40:    7(bvec4) LogicalOr 36 39
                              Store 33(r02) 40
              44:     43(ptr) AccessChain 14 42
              45:     10(int) Load 44
              46:     6(bool) INotEqual 45 20
              47:    7(bvec4) CompositeConstruct 46 46 46 46
              48:     17(ptr) AccessChain 14 28
              49:   11(ivec4) Load 48
              50:    7(bvec4) INotEqual 49 21
              51:    7(bvec4) LogicalAnd 47 50
                              Store 41(r10) 51
              53:     43(ptr) AccessChain 14 42
              54:     10(int) Load 53
              55:     6(bool) INotEqual 54 20
              56:    7(bvec4) CompositeConstruct 55 55 55 55
              57:     17(ptr) AccessChain 14 28
              58:   11(ivec4) Load 57
              59:    7(bvec4) INotEqual 58 21
              60:    7(bvec4) LogicalOr 56 59
                              Store 52(r11) 60
              62:     17(ptr) AccessChain 14 16
              63:   11(ivec4) Load 62
              64:    7(bvec4) INotEqual 63 21
                              SelectionMerge 66 None
                              BranchConditional 64 65 66
              65:               Label
              68:     43(ptr)   AccessChain 14 67
              69:     10(int)   Load 68
              70:     6(bool)   INotEqual 69 20
              71:    7(bvec4)   CompositeConstruct 70 70 70 70
                                Branch 66
              66:             Label
              72:     6(bool) Phi 64 5 71 65
                              Store 61(r20) 72
              74:     17(ptr) AccessChain 14 16
              75:   11(ivec4) Load 74
              76:    7(bvec4) INotEqual 75 21
              77:     6(bool) LogicalNot 76
                              SelectionMerge 79 None
                              BranchConditional 77 78 79
              78:               Label
              80:     43(ptr)   AccessChain 14 67
              81:     10(int)   Load 80
              82:     6(bool)   INotEqual 81 20
              83:    7(bvec4)   CompositeConstruct 82 82 82 82
                                Branch 79
              79:             Label
              84:     6(bool) Phi 76 66 83 78
                              Store 73(r21) 84
              90:    7(bvec4) Load 9(r00)
              91:    7(bvec4) Load 24(r01)
              92:    7(bvec4) LogicalOr 90 91
              93:    7(bvec4) Load 33(r02)
              94:    7(bvec4) LogicalOr 92 93
              95:    7(bvec4) Load 41(r10)
              96:    7(bvec4) LogicalOr 94 95
              97:    7(bvec4) Load 52(r11)
              98:    7(bvec4) LogicalOr 96 97
              99:    7(bvec4) Load 61(r20)
             100:    7(bvec4) LogicalOr 98 99
             101:    7(bvec4) Load 73(r21)
             102:    7(bvec4) LogicalOr 100 101
             107:   86(fvec4) Select 102 106 105
             109:    108(ptr) AccessChain 89(psout) 16
                              Store 109 107
             112:    108(ptr) AccessChain 89(psout) 16
             113:   86(fvec4) Load 112
                              Store 111(Color) 113
                              Return
                              FunctionEnd
