hlsl.logical.binary.vec.frag
Shader version: 500
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 ( uniform 4-component vector of bool)
0:11              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  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 ( uniform 4-component vector of bool)
0:12              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  uniform bool b1b})
0:12              Constant:
0:12                0 (const uint)
0:12            b4b: direct index for structure ( uniform 4-component vector of bool)
0:12              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  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 ( uniform 4-component vector of bool)
0:13              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  uniform bool b1b})
0:13              Constant:
0:13                0 (const uint)
0:13            b4b: direct index for structure ( uniform 4-component vector of bool)
0:13              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  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 ( uniform 4-component vector of bool)
0:15              b1a: direct index for structure ( uniform bool)
0:15                'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  uniform bool b1b})
0:15                Constant:
0:15                  2 (const uint)
0:15            b4b: direct index for structure ( uniform 4-component vector of bool)
0:15              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  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 ( uniform 4-component vector of bool)
0:16              b1a: direct index for structure ( uniform bool)
0:16                'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  uniform bool b1b})
0:16                Constant:
0:16                  2 (const uint)
0:16            b4b: direct index for structure ( uniform 4-component vector of bool)
0:16              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  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 ( uniform 4-component vector of bool)
0:18              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  uniform bool b1b})
0:18              Constant:
0:18                0 (const uint)
0:18            Construct bvec4 ( uniform 4-component vector of bool)
0:18              b1b: direct index for structure ( uniform bool)
0:18                'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  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 ( uniform 4-component vector of bool)
0:19              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  uniform bool b1b})
0:19              Constant:
0:19                0 (const uint)
0:19            Construct bvec4 ( uniform 4-component vector of bool)
0:19              b1b: direct index for structure ( uniform bool)
0:19                'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  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      Branch: Return with expression
0:23        'psout' ( temp structure{ temp 4-component vector of float Color})
0:10  Function Definition: main( ( temp void)
0:10    Function Parameters: 
0:?     Sequence
0:10      Sequence
0:10        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:10          Color: direct index for structure ( temp 4-component vector of float)
0:10            Function Call: @main( ( temp structure{ temp 4-component vector of float Color})
0:10            Constant:
0:10              0 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  uniform bool b1b})
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
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 ( uniform 4-component vector of bool)
0:11              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  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 ( uniform 4-component vector of bool)
0:12              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  uniform bool b1b})
0:12              Constant:
0:12                0 (const uint)
0:12            b4b: direct index for structure ( uniform 4-component vector of bool)
0:12              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  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 ( uniform 4-component vector of bool)
0:13              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  uniform bool b1b})
0:13              Constant:
0:13                0 (const uint)
0:13            b4b: direct index for structure ( uniform 4-component vector of bool)
0:13              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  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 ( uniform 4-component vector of bool)
0:15              b1a: direct index for structure ( uniform bool)
0:15                'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  uniform bool b1b})
0:15                Constant:
0:15                  2 (const uint)
0:15            b4b: direct index for structure ( uniform 4-component vector of bool)
0:15              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  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 ( uniform 4-component vector of bool)
0:16              b1a: direct index for structure ( uniform bool)
0:16                'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  uniform bool b1b})
0:16                Constant:
0:16                  2 (const uint)
0:16            b4b: direct index for structure ( uniform 4-component vector of bool)
0:16              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  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 ( uniform 4-component vector of bool)
0:18              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  uniform bool b1b})
0:18              Constant:
0:18                0 (const uint)
0:18            Construct bvec4 ( uniform 4-component vector of bool)
0:18              b1b: direct index for structure ( uniform bool)
0:18                'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  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 ( uniform 4-component vector of bool)
0:19              'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  uniform bool b1b})
0:19              Constant:
0:19                0 (const uint)
0:19            Construct bvec4 ( uniform 4-component vector of bool)
0:19              b1b: direct index for structure ( uniform bool)
0:19                'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  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      Branch: Return with expression
0:23        'psout' ( temp structure{ temp 4-component vector of float Color})
0:10  Function Definition: main( ( temp void)
0:10    Function Parameters: 
0:?     Sequence
0:10      Sequence
0:10        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:10          Color: direct index for structure ( temp 4-component vector of float)
0:10            Function Call: @main( ( temp structure{ temp 4-component vector of float Color})
0:10            Constant:
0:10              0 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of bool b4a,  uniform 4-component vector of bool b4b,  uniform bool b1a,  uniform bool b1b})
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)

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

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