hlsl.matType.bool.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:3  Function Definition: TestBoolMatTypes( ( temp void)
0:3    Function Parameters: 
0:?     Sequence
0:25      Sequence
0:25        move second child to first child ( temp 1X1 matrix of bool)
0:25          'r00' ( temp 1X1 matrix of bool)
0:25          transpose ( temp 1X1 matrix of bool)
0:25            'b1x1' ( temp 1X1 matrix of bool)
0:26      Sequence
0:26        move second child to first child ( temp 1X2 matrix of bool)
0:26          'r01' ( temp 1X2 matrix of bool)
0:26          transpose ( temp 1X2 matrix of bool)
0:26            'b2x1' ( temp 2X1 matrix of bool)
0:27      Sequence
0:27        move second child to first child ( temp 1X3 matrix of bool)
0:27          'r02' ( temp 1X3 matrix of bool)
0:27          transpose ( temp 1X3 matrix of bool)
0:27            'b3x1' ( temp 3X1 matrix of bool)
0:28      Sequence
0:28        move second child to first child ( temp 1X4 matrix of bool)
0:28          'r03' ( temp 1X4 matrix of bool)
0:28          transpose ( temp 1X4 matrix of bool)
0:28            'b4x1' ( temp 4X1 matrix of bool)
0:30      Sequence
0:30        move second child to first child ( temp 2X1 matrix of bool)
0:30          'r10' ( temp 2X1 matrix of bool)
0:30          transpose ( temp 2X1 matrix of bool)
0:30            'b1x2' ( temp 1X2 matrix of bool)
0:31      Sequence
0:31        move second child to first child ( temp 2X2 matrix of bool)
0:31          'r11' ( temp 2X2 matrix of bool)
0:31          transpose ( temp 2X2 matrix of bool)
0:31            'b2x2' ( temp 2X2 matrix of bool)
0:32      Sequence
0:32        move second child to first child ( temp 2X3 matrix of bool)
0:32          'r12' ( temp 2X3 matrix of bool)
0:32          transpose ( temp 2X3 matrix of bool)
0:32            'b3x2' ( temp 3X2 matrix of bool)
0:33      Sequence
0:33        move second child to first child ( temp 2X4 matrix of bool)
0:33          'r13' ( temp 2X4 matrix of bool)
0:33          transpose ( temp 2X4 matrix of bool)
0:33            'b4x2' ( temp 4X2 matrix of bool)
0:35      Sequence
0:35        move second child to first child ( temp 3X1 matrix of bool)
0:35          'r20' ( temp 3X1 matrix of bool)
0:35          transpose ( temp 3X1 matrix of bool)
0:35            'b1x3' ( temp 1X3 matrix of bool)
0:36      Sequence
0:36        move second child to first child ( temp 3X2 matrix of bool)
0:36          'r21' ( temp 3X2 matrix of bool)
0:36          transpose ( temp 3X2 matrix of bool)
0:36            'b2x3' ( temp 2X3 matrix of bool)
0:37      Sequence
0:37        move second child to first child ( temp 3X3 matrix of bool)
0:37          'r22' ( temp 3X3 matrix of bool)
0:37          transpose ( temp 3X3 matrix of bool)
0:37            'b3x3' ( temp 3X3 matrix of bool)
0:38      Sequence
0:38        move second child to first child ( temp 3X4 matrix of bool)
0:38          'r23' ( temp 3X4 matrix of bool)
0:38          transpose ( temp 3X4 matrix of bool)
0:38            'b4x3' ( temp 4X3 matrix of bool)
0:40      Sequence
0:40        move second child to first child ( temp 4X1 matrix of bool)
0:40          'r30' ( temp 4X1 matrix of bool)
0:40          transpose ( temp 4X1 matrix of bool)
0:40            'b1x4' ( temp 1X4 matrix of bool)
0:41      Sequence
0:41        move second child to first child ( temp 4X2 matrix of bool)
0:41          'r31' ( temp 4X2 matrix of bool)
0:41          transpose ( temp 4X2 matrix of bool)
0:41            'b2x4' ( temp 2X4 matrix of bool)
0:42      Sequence
0:42        move second child to first child ( temp 4X3 matrix of bool)
0:42          'r32' ( temp 4X3 matrix of bool)
0:42          transpose ( temp 4X3 matrix of bool)
0:42            'b3x4' ( temp 3X4 matrix of bool)
0:43      Sequence
0:43        move second child to first child ( temp 4X4 matrix of bool)
0:43          'r33' ( temp 4X4 matrix of bool)
0:43          transpose ( temp 4X4 matrix of bool)
0:43            'b4x4' ( temp 4X4 matrix of bool)
0:49  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
0:49    Function Parameters: 
0:?     Sequence
0:51      move second child to first child ( temp 4-component vector of float)
0:51        color: direct index for structure ( temp 4-component vector of float)
0:51          'ps_output' ( temp structure{ temp 4-component vector of float color})
0:51          Constant:
0:51            0 (const int)
0:51        Constant:
0:51          0.000000
0:51          0.000000
0:51          0.000000
0:51          0.000000
0:52      Branch: Return with expression
0:52        'ps_output' ( temp structure{ temp 4-component vector of float color})
0:49  Function Definition: main( ( temp void)
0:49    Function Parameters: 
0:?     Sequence
0:49      Sequence
0:49        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:49          color: direct index for structure ( temp 4-component vector of float)
0:49            Function Call: @main( ( temp structure{ temp 4-component vector of float color})
0:49            Constant:
0:49              0 (const int)
0:?   Linker Objects
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:3  Function Definition: TestBoolMatTypes( ( temp void)
0:3    Function Parameters: 
0:?     Sequence
0:25      Sequence
0:25        move second child to first child ( temp 1X1 matrix of bool)
0:25          'r00' ( temp 1X1 matrix of bool)
0:25          transpose ( temp 1X1 matrix of bool)
0:25            'b1x1' ( temp 1X1 matrix of bool)
0:26      Sequence
0:26        move second child to first child ( temp 1X2 matrix of bool)
0:26          'r01' ( temp 1X2 matrix of bool)
0:26          transpose ( temp 1X2 matrix of bool)
0:26            'b2x1' ( temp 2X1 matrix of bool)
0:27      Sequence
0:27        move second child to first child ( temp 1X3 matrix of bool)
0:27          'r02' ( temp 1X3 matrix of bool)
0:27          transpose ( temp 1X3 matrix of bool)
0:27            'b3x1' ( temp 3X1 matrix of bool)
0:28      Sequence
0:28        move second child to first child ( temp 1X4 matrix of bool)
0:28          'r03' ( temp 1X4 matrix of bool)
0:28          transpose ( temp 1X4 matrix of bool)
0:28            'b4x1' ( temp 4X1 matrix of bool)
0:30      Sequence
0:30        move second child to first child ( temp 2X1 matrix of bool)
0:30          'r10' ( temp 2X1 matrix of bool)
0:30          transpose ( temp 2X1 matrix of bool)
0:30            'b1x2' ( temp 1X2 matrix of bool)
0:31      Sequence
0:31        move second child to first child ( temp 2X2 matrix of bool)
0:31          'r11' ( temp 2X2 matrix of bool)
0:31          transpose ( temp 2X2 matrix of bool)
0:31            'b2x2' ( temp 2X2 matrix of bool)
0:32      Sequence
0:32        move second child to first child ( temp 2X3 matrix of bool)
0:32          'r12' ( temp 2X3 matrix of bool)
0:32          transpose ( temp 2X3 matrix of bool)
0:32            'b3x2' ( temp 3X2 matrix of bool)
0:33      Sequence
0:33        move second child to first child ( temp 2X4 matrix of bool)
0:33          'r13' ( temp 2X4 matrix of bool)
0:33          transpose ( temp 2X4 matrix of bool)
0:33            'b4x2' ( temp 4X2 matrix of bool)
0:35      Sequence
0:35        move second child to first child ( temp 3X1 matrix of bool)
0:35          'r20' ( temp 3X1 matrix of bool)
0:35          transpose ( temp 3X1 matrix of bool)
0:35            'b1x3' ( temp 1X3 matrix of bool)
0:36      Sequence
0:36        move second child to first child ( temp 3X2 matrix of bool)
0:36          'r21' ( temp 3X2 matrix of bool)
0:36          transpose ( temp 3X2 matrix of bool)
0:36            'b2x3' ( temp 2X3 matrix of bool)
0:37      Sequence
0:37        move second child to first child ( temp 3X3 matrix of bool)
0:37          'r22' ( temp 3X3 matrix of bool)
0:37          transpose ( temp 3X3 matrix of bool)
0:37            'b3x3' ( temp 3X3 matrix of bool)
0:38      Sequence
0:38        move second child to first child ( temp 3X4 matrix of bool)
0:38          'r23' ( temp 3X4 matrix of bool)
0:38          transpose ( temp 3X4 matrix of bool)
0:38            'b4x3' ( temp 4X3 matrix of bool)
0:40      Sequence
0:40        move second child to first child ( temp 4X1 matrix of bool)
0:40          'r30' ( temp 4X1 matrix of bool)
0:40          transpose ( temp 4X1 matrix of bool)
0:40            'b1x4' ( temp 1X4 matrix of bool)
0:41      Sequence
0:41        move second child to first child ( temp 4X2 matrix of bool)
0:41          'r31' ( temp 4X2 matrix of bool)
0:41          transpose ( temp 4X2 matrix of bool)
0:41            'b2x4' ( temp 2X4 matrix of bool)
0:42      Sequence
0:42        move second child to first child ( temp 4X3 matrix of bool)
0:42          'r32' ( temp 4X3 matrix of bool)
0:42          transpose ( temp 4X3 matrix of bool)
0:42            'b3x4' ( temp 3X4 matrix of bool)
0:43      Sequence
0:43        move second child to first child ( temp 4X4 matrix of bool)
0:43          'r33' ( temp 4X4 matrix of bool)
0:43          transpose ( temp 4X4 matrix of bool)
0:43            'b4x4' ( temp 4X4 matrix of bool)
0:49  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
0:49    Function Parameters: 
0:?     Sequence
0:51      move second child to first child ( temp 4-component vector of float)
0:51        color: direct index for structure ( temp 4-component vector of float)
0:51          'ps_output' ( temp structure{ temp 4-component vector of float color})
0:51          Constant:
0:51            0 (const int)
0:51        Constant:
0:51          0.000000
0:51          0.000000
0:51          0.000000
0:51          0.000000
0:52      Branch: Return with expression
0:52        'ps_output' ( temp structure{ temp 4-component vector of float color})
0:49  Function Definition: main( ( temp void)
0:49    Function Parameters: 
0:?     Sequence
0:49      Sequence
0:49        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:49          color: direct index for structure ( temp 4-component vector of float)
0:49            Function Call: @main( ( temp structure{ temp 4-component vector of float color})
0:49            Constant:
0:49              0 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 127
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 6  "TestBoolMatTypes("
                              Name 10  "PS_OUTPUT"
                              MemberName 10(PS_OUTPUT) 0  "color"
                              Name 12  "@main("
                              Name 18  "r00"
                              Name 19  "b1x1"
                              Name 25  "r01"
                              Name 28  "b2x1"
                              Name 34  "r02"
                              Name 37  "b3x1"
                              Name 43  "r03"
                              Name 46  "b4x1"
                              Name 49  "r10"
                              Name 50  "b1x2"
                              Name 55  "r11"
                              Name 56  "b2x2"
                              Name 61  "r12"
                              Name 64  "b3x2"
                              Name 69  "r13"
                              Name 72  "b4x2"
                              Name 75  "r20"
                              Name 76  "b1x3"
                              Name 79  "r21"
                              Name 80  "b2x3"
                              Name 85  "r22"
                              Name 86  "b3x3"
                              Name 91  "r23"
                              Name 94  "b4x3"
                              Name 97  "r30"
                              Name 98  "b1x4"
                              Name 101  "r31"
                              Name 102  "b2x4"
                              Name 105  "r32"
                              Name 106  "b3x4"
                              Name 111  "r33"
                              Name 112  "b4x4"
                              Name 116  "ps_output"
                              Name 127  "@entryPointOutput.color"
                              Decorate 127(@entryPointOutput.color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               8:             TypeFloat 32
               9:             TypeVector 8(float) 4
   10(PS_OUTPUT):             TypeStruct 9(fvec4)
              11:             TypeFunction 10(PS_OUTPUT)
              14:             TypeBool
              15:             TypeVector 14(bool) 1
              16:             TypeMatrix 15(bvec) 1
              17:             TypePointer Function 16
              22:             TypeVector 14(bool) 2
              23:             TypeMatrix 22(bvec2) 1
              24:             TypePointer Function 23
              26:             TypeMatrix 15(bvec) 2
              27:             TypePointer Function 26
              31:             TypeVector 14(bool) 3
              32:             TypeMatrix 31(bvec3) 1
              33:             TypePointer Function 32
              35:             TypeMatrix 15(bvec) 3
              36:             TypePointer Function 35
              40:             TypeVector 14(bool) 4
              41:             TypeMatrix 40(bvec4) 1
              42:             TypePointer Function 41
              44:             TypeMatrix 15(bvec) 4
              45:             TypePointer Function 44
              53:             TypeMatrix 22(bvec2) 2
              54:             TypePointer Function 53
              59:             TypeMatrix 31(bvec3) 2
              60:             TypePointer Function 59
              62:             TypeMatrix 22(bvec2) 3
              63:             TypePointer Function 62
              67:             TypeMatrix 40(bvec4) 2
              68:             TypePointer Function 67
              70:             TypeMatrix 22(bvec2) 4
              71:             TypePointer Function 70
              83:             TypeMatrix 31(bvec3) 3
              84:             TypePointer Function 83
              89:             TypeMatrix 40(bvec4) 3
              90:             TypePointer Function 89
              92:             TypeMatrix 31(bvec3) 4
              93:             TypePointer Function 92
             109:             TypeMatrix 40(bvec4) 4
             110:             TypePointer Function 109
             115:             TypePointer Function 10(PS_OUTPUT)
             117:             TypeInt 32 1
             118:    117(int) Constant 0
             119:    8(float) Constant 0
             120:    9(fvec4) ConstantComposite 119 119 119 119
             121:             TypePointer Function 9(fvec4)
             126:             TypePointer Output 9(fvec4)
127(@entryPointOutput.color):    126(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
             128:10(PS_OUTPUT) FunctionCall 12(@main()
             129:    9(fvec4) CompositeExtract 128 0
                              Store 127(@entryPointOutput.color) 129
                              Return
                              FunctionEnd
6(TestBoolMatTypes():           2 Function None 3
               7:             Label
         18(r00):     17(ptr) Variable Function
        19(b1x1):     17(ptr) Variable Function
         25(r01):     24(ptr) Variable Function
        28(b2x1):     27(ptr) Variable Function
         34(r02):     33(ptr) Variable Function
        37(b3x1):     36(ptr) Variable Function
         43(r03):     42(ptr) Variable Function
        46(b4x1):     45(ptr) Variable Function
         49(r10):     27(ptr) Variable Function
        50(b1x2):     24(ptr) Variable Function
         55(r11):     54(ptr) Variable Function
        56(b2x2):     54(ptr) Variable Function
         61(r12):     60(ptr) Variable Function
        64(b3x2):     63(ptr) Variable Function
         69(r13):     68(ptr) Variable Function
        72(b4x2):     71(ptr) Variable Function
         75(r20):     36(ptr) Variable Function
        76(b1x3):     33(ptr) Variable Function
         79(r21):     63(ptr) Variable Function
        80(b2x3):     60(ptr) Variable Function
         85(r22):     84(ptr) Variable Function
        86(b3x3):     84(ptr) Variable Function
         91(r23):     90(ptr) Variable Function
        94(b4x3):     93(ptr) Variable Function
         97(r30):     45(ptr) Variable Function
        98(b1x4):     42(ptr) Variable Function
        101(r31):     71(ptr) Variable Function
       102(b2x4):     68(ptr) Variable Function
        105(r32):     93(ptr) Variable Function
       106(b3x4):     90(ptr) Variable Function
        111(r33):    110(ptr) Variable Function
       112(b4x4):    110(ptr) Variable Function
              20:          16 Load 19(b1x1)
              21:          16 Transpose 20
                              Store 18(r00) 21
              29:          26 Load 28(b2x1)
              30:          23 Transpose 29
                              Store 25(r01) 30
              38:          35 Load 37(b3x1)
              39:          32 Transpose 38
                              Store 34(r02) 39
              47:          44 Load 46(b4x1)
              48:          41 Transpose 47
                              Store 43(r03) 48
              51:          23 Load 50(b1x2)
              52:          26 Transpose 51
                              Store 49(r10) 52
              57:          53 Load 56(b2x2)
              58:          53 Transpose 57
                              Store 55(r11) 58
              65:          62 Load 64(b3x2)
              66:          59 Transpose 65
                              Store 61(r12) 66
              73:          70 Load 72(b4x2)
              74:          67 Transpose 73
                              Store 69(r13) 74
              77:          32 Load 76(b1x3)
              78:          35 Transpose 77
                              Store 75(r20) 78
              81:          59 Load 80(b2x3)
              82:          62 Transpose 81
                              Store 79(r21) 82
              87:          83 Load 86(b3x3)
              88:          83 Transpose 87
                              Store 85(r22) 88
              95:          92 Load 94(b4x3)
              96:          89 Transpose 95
                              Store 91(r23) 96
              99:          41 Load 98(b1x4)
             100:          44 Transpose 99
                              Store 97(r30) 100
             103:          67 Load 102(b2x4)
             104:          70 Transpose 103
                              Store 101(r31) 104
             107:          89 Load 106(b3x4)
             108:          92 Transpose 107
                              Store 105(r32) 108
             113:         109 Load 112(b4x4)
             114:         109 Transpose 113
                              Store 111(r33) 114
                              Return
                              FunctionEnd
      12(@main():10(PS_OUTPUT) Function None 11
              13:             Label
  116(ps_output):    115(ptr) Variable Function
             122:    121(ptr) AccessChain 116(ps_output) 118
                              Store 122 120
             123:10(PS_OUTPUT) Load 116(ps_output)
                              ReturnValue 123
                              FunctionEnd
