object-operators.hlsl 101 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770
  1. // RUN: %clang_cc1 -fsyntax-only -Wno-unused-value -ffreestanding -verify %s
  2. // we use -Wno-unused-value because we generate some no-op expressions to yield errors
  3. // without also putting them in a static assertion
  4. // __decltype is the GCC way of saying 'decltype', but doesn't require C++11
  5. // _Static_assert is the C11 way of saying 'static_assert', but doesn't require C++11
  6. #ifdef VERIFY_FXC
  7. #define _Static_assert(a,b,c) ;
  8. #endif
  9. // To test with the classic compiler, run
  10. // %sdxroot%\tools\x86\fxc.exe /T vs_5_1 scalar-operators.hlsl
  11. // with vs_2_0 (the default) min16float usage produces a complaint that it's not supported
  12. struct f3_s { float3 f3; };
  13. struct mixed_s { float3 f3; SamplerState s; };
  14. SamplerState g_SamplerState;
  15. f3_s g_f3_s;
  16. mixed_s g_mixed_s;
  17. float4 plain(float4 param4 /* : FOO */) /*: FOO */{
  18. bool bools = 0;
  19. int ints = 0;
  20. float floats = 0;
  21. SamplerState SamplerStates = g_SamplerState;
  22. f3_s f3_ss = g_f3_s;
  23. mixed_s mixed_ss = g_mixed_s;
  24. // NOTE: errors that were formerly 'type mismatch' or 'compilation aborted unexpectedly'
  25. // when dealing with built-in types, (SamplerState in these examples) are now 'operator
  26. // cannot be used with built-in type 'SamplerState'' or
  27. // some 'int or unsigned int type required' become 'scalar, vector, or matrix expected'
  28. // some 'cannot implicitly convert from 'SamplerState' to 'bool'' become 'type mismatch'
  29. (bools + SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  30. (bools + f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  31. (bools + mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  32. (ints + SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  33. (ints + f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  34. (ints + mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  35. (floats + SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  36. (floats + f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  37. (floats + mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  38. (SamplerStates + bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  39. (SamplerStates + ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  40. (SamplerStates + floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  41. (SamplerStates + SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  42. (SamplerStates + f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  43. (SamplerStates + mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  44. (f3_ss + bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  45. (f3_ss + ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  46. (f3_ss + floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  47. (f3_ss + SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  48. (f3_ss + f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  49. (f3_ss + mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  50. (mixed_ss + bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  51. (mixed_ss + ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  52. (mixed_ss + floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  53. (mixed_ss + SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  54. (mixed_ss + f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  55. (mixed_ss + mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  56. (bools - SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  57. (bools - f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  58. (bools - mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  59. (ints - SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  60. (ints - f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  61. (ints - mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  62. (floats - SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  63. (floats - f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  64. (floats - mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  65. (SamplerStates - bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  66. (SamplerStates - ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  67. (SamplerStates - floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  68. (SamplerStates - SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  69. (SamplerStates - f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  70. (SamplerStates - mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  71. (f3_ss - bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  72. (f3_ss - ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  73. (f3_ss - floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  74. (f3_ss - SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  75. (f3_ss - f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  76. (f3_ss - mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  77. (mixed_ss - bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  78. (mixed_ss - ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  79. (mixed_ss - floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  80. (mixed_ss - SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  81. (mixed_ss - f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  82. (mixed_ss - mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  83. (bools / SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  84. (bools / f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  85. (bools / mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  86. (ints / SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  87. (ints / f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  88. (ints / mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  89. (floats / SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  90. (floats / f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  91. (floats / mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  92. (SamplerStates / bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  93. (SamplerStates / ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  94. (SamplerStates / floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  95. (SamplerStates / SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  96. (SamplerStates / f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  97. (SamplerStates / mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  98. (f3_ss / bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  99. (f3_ss / ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  100. (f3_ss / floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  101. (f3_ss / SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  102. (f3_ss / f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  103. (f3_ss / mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  104. (mixed_ss / bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  105. (mixed_ss / ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  106. (mixed_ss / floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  107. (mixed_ss / SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  108. (mixed_ss / f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  109. (mixed_ss / mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  110. (bools % SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  111. (bools % f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  112. (bools % mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  113. (ints % SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  114. (ints % f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  115. (ints % mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  116. (floats % SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  117. (floats % f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  118. (floats % mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  119. (SamplerStates % bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  120. (SamplerStates % ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  121. (SamplerStates % floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  122. (SamplerStates % SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  123. (SamplerStates % f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  124. (SamplerStates % mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  125. (f3_ss % bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  126. (f3_ss % ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  127. (f3_ss % floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  128. (f3_ss % SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  129. (f3_ss % f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  130. (f3_ss % mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  131. (mixed_ss % bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  132. (mixed_ss % ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  133. (mixed_ss % floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  134. (mixed_ss % SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  135. (mixed_ss % f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  136. (mixed_ss % mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  137. (bools < SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  138. (bools < f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  139. (bools < mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  140. (ints < SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  141. (ints < f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  142. (ints < mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  143. (floats < SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  144. (floats < f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  145. (floats < mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  146. (SamplerStates < bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  147. (SamplerStates < ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  148. (SamplerStates < floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  149. (SamplerStates < SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  150. (SamplerStates < f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  151. (SamplerStates < mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  152. (f3_ss < bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  153. (f3_ss < ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  154. (f3_ss < floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  155. (f3_ss < SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  156. (f3_ss < f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  157. (f3_ss < mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  158. (mixed_ss < bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  159. (mixed_ss < ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  160. (mixed_ss < floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  161. (mixed_ss < SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  162. (mixed_ss < f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  163. (mixed_ss < mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  164. (bools <= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  165. (bools <= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  166. (bools <= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  167. (ints <= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  168. (ints <= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  169. (ints <= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  170. (floats <= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  171. (floats <= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  172. (floats <= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  173. (SamplerStates <= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  174. (SamplerStates <= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  175. (SamplerStates <= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  176. (SamplerStates <= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  177. (SamplerStates <= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  178. (SamplerStates <= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  179. (f3_ss <= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  180. (f3_ss <= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  181. (f3_ss <= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  182. (f3_ss <= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  183. (f3_ss <= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  184. (f3_ss <= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  185. (mixed_ss <= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  186. (mixed_ss <= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  187. (mixed_ss <= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  188. (mixed_ss <= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  189. (mixed_ss <= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  190. (mixed_ss <= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  191. (bools > SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  192. (bools > f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  193. (bools > mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  194. (ints > SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  195. (ints > f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  196. (ints > mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  197. (floats > SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  198. (floats > f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  199. (floats > mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  200. (SamplerStates > bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  201. (SamplerStates > ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  202. (SamplerStates > floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  203. (SamplerStates > SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  204. (SamplerStates > f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  205. (SamplerStates > mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  206. (f3_ss > bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  207. (f3_ss > ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  208. (f3_ss > floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  209. (f3_ss > SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  210. (f3_ss > f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  211. (f3_ss > mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  212. (mixed_ss > bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  213. (mixed_ss > ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  214. (mixed_ss > floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  215. (mixed_ss > SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  216. (mixed_ss > f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  217. (mixed_ss > mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  218. (bools >= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  219. (bools >= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  220. (bools >= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  221. (ints >= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  222. (ints >= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  223. (ints >= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  224. (floats >= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  225. (floats >= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  226. (floats >= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  227. (SamplerStates >= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  228. (SamplerStates >= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  229. (SamplerStates >= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  230. (SamplerStates >= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  231. (SamplerStates >= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  232. (SamplerStates >= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  233. (f3_ss >= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  234. (f3_ss >= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  235. (f3_ss >= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  236. (f3_ss >= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  237. (f3_ss >= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  238. (f3_ss >= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  239. (mixed_ss >= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  240. (mixed_ss >= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  241. (mixed_ss >= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  242. (mixed_ss >= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  243. (mixed_ss >= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  244. (mixed_ss >= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  245. (bools == SamplerStates); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} fxc-error {{X3020: type mismatch}}
  246. (bools == f3_ss); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  247. (bools == mixed_ss); // expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  248. (ints == SamplerStates); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} fxc-error {{X3020: type mismatch}}
  249. (ints == f3_ss); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  250. (ints == mixed_ss); // expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  251. (floats == SamplerStates); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} fxc-error {{X3020: type mismatch}}
  252. (floats == f3_ss); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  253. (floats == mixed_ss); // expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  254. (SamplerStates == bools); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} fxc-error {{X3020: type mismatch}}
  255. (SamplerStates == ints); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} fxc-error {{X3020: type mismatch}}
  256. (SamplerStates == floats); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} fxc-error {{X3020: type mismatch}}
  257. (SamplerStates == SamplerStates); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} fxc-pass {{}}
  258. (SamplerStates == f3_ss); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  259. (SamplerStates == mixed_ss); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  260. (f3_ss == bools); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  261. (f3_ss == ints); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  262. (f3_ss == floats); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  263. (f3_ss == SamplerStates); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  264. (f3_ss == f3_ss); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  265. (f3_ss == mixed_ss); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  266. (mixed_ss == bools); // expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  267. (mixed_ss == ints); // expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  268. (mixed_ss == floats); // expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  269. (mixed_ss == SamplerStates); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  270. (mixed_ss == f3_ss); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  271. (mixed_ss == mixed_ss); // expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  272. (bools != SamplerStates); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} fxc-error {{X3020: type mismatch}}
  273. (bools != f3_ss); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  274. (bools != mixed_ss); // expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  275. (ints != SamplerStates); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} fxc-error {{X3020: type mismatch}}
  276. (ints != f3_ss); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  277. (ints != mixed_ss); // expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  278. (floats != SamplerStates); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} fxc-error {{X3020: type mismatch}}
  279. (floats != f3_ss); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  280. (floats != mixed_ss); // expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  281. (SamplerStates != bools); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} fxc-error {{X3020: type mismatch}}
  282. (SamplerStates != ints); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} fxc-error {{X3020: type mismatch}}
  283. (SamplerStates != floats); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} fxc-error {{X3020: type mismatch}}
  284. (SamplerStates != SamplerStates); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} fxc-pass {{}}
  285. (SamplerStates != f3_ss); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  286. (SamplerStates != mixed_ss); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  287. (f3_ss != bools); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  288. (f3_ss != ints); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  289. (f3_ss != floats); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  290. (f3_ss != SamplerStates); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  291. (f3_ss != f3_ss); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} fxc-error {{X3020: type mismatch}}
  292. (f3_ss != mixed_ss); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  293. (mixed_ss != bools); // expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  294. (mixed_ss != ints); // expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  295. (mixed_ss != floats); // expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  296. (mixed_ss != SamplerStates); // expected-error {{operator cannot be used with built-in type 'SamplerState'}} expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  297. (mixed_ss != f3_ss); // expected-error {{operator cannot be used with user-defined type 'f3_s'}} expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  298. (mixed_ss != mixed_ss); // expected-error {{operator cannot be used with user-defined type 'mixed_s'}} fxc-error {{X3020: type mismatch}}
  299. (bools << SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  300. (bools << f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  301. (bools << mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  302. (ints << SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  303. (ints << f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  304. (ints << mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  305. (floats << SamplerStates); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  306. (floats << f3_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  307. (floats << mixed_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  308. (SamplerStates << bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  309. (SamplerStates << ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  310. (SamplerStates << floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  311. (SamplerStates << SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  312. (SamplerStates << f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  313. (SamplerStates << mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  314. (f3_ss << bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  315. (f3_ss << ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  316. (f3_ss << floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  317. (f3_ss << SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  318. (f3_ss << f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  319. (f3_ss << mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  320. (mixed_ss << bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  321. (mixed_ss << ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  322. (mixed_ss << floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  323. (mixed_ss << SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  324. (mixed_ss << f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  325. (mixed_ss << mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  326. (bools >> SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  327. (bools >> f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  328. (bools >> mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  329. (ints >> SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  330. (ints >> f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  331. (ints >> mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  332. (floats >> SamplerStates); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  333. (floats >> f3_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  334. (floats >> mixed_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  335. (SamplerStates >> bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  336. (SamplerStates >> ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  337. (SamplerStates >> floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  338. (SamplerStates >> SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  339. (SamplerStates >> f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  340. (SamplerStates >> mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  341. (f3_ss >> bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  342. (f3_ss >> ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  343. (f3_ss >> floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  344. (f3_ss >> SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  345. (f3_ss >> f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  346. (f3_ss >> mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  347. (mixed_ss >> bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  348. (mixed_ss >> ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  349. (mixed_ss >> floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  350. (mixed_ss >> SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  351. (mixed_ss >> f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  352. (mixed_ss >> mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  353. (bools & SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  354. (bools & f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  355. (bools & mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  356. (ints & SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  357. (ints & f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  358. (ints & mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  359. (floats & SamplerStates); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  360. (floats & f3_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  361. (floats & mixed_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  362. (SamplerStates & bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  363. (SamplerStates & ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  364. (SamplerStates & floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  365. (SamplerStates & SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  366. (SamplerStates & f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  367. (SamplerStates & mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  368. (f3_ss & bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  369. (f3_ss & ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  370. (f3_ss & floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  371. (f3_ss & SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  372. (f3_ss & f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  373. (f3_ss & mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  374. (mixed_ss & bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  375. (mixed_ss & ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  376. (mixed_ss & floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  377. (mixed_ss & SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  378. (mixed_ss & f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  379. (mixed_ss & mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  380. (bools | SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  381. (bools | f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  382. (bools | mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  383. (ints | SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  384. (ints | f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  385. (ints | mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  386. (floats | SamplerStates); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  387. (floats | f3_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  388. (floats | mixed_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  389. (SamplerStates | bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  390. (SamplerStates | ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  391. (SamplerStates | floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  392. (SamplerStates | SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  393. (SamplerStates | f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  394. (SamplerStates | mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  395. (f3_ss | bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  396. (f3_ss | ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  397. (f3_ss | floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  398. (f3_ss | SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  399. (f3_ss | f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  400. (f3_ss | mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  401. (mixed_ss | bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  402. (mixed_ss | ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  403. (mixed_ss | floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  404. (mixed_ss | SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  405. (mixed_ss | f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  406. (mixed_ss | mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  407. (bools ^ SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  408. (bools ^ f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  409. (bools ^ mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  410. (ints ^ SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  411. (ints ^ f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  412. (ints ^ mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  413. (floats ^ SamplerStates); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  414. (floats ^ f3_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  415. (floats ^ mixed_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  416. (SamplerStates ^ bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  417. (SamplerStates ^ ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  418. (SamplerStates ^ floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  419. (SamplerStates ^ SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  420. (SamplerStates ^ f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  421. (SamplerStates ^ mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  422. (f3_ss ^ bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  423. (f3_ss ^ ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  424. (f3_ss ^ floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  425. (f3_ss ^ SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  426. (f3_ss ^ f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  427. (f3_ss ^ mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  428. (mixed_ss ^ bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  429. (mixed_ss ^ ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  430. (mixed_ss ^ floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  431. (mixed_ss ^ SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  432. (mixed_ss ^ f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  433. (mixed_ss ^ mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  434. (bools && SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  435. (bools && f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  436. (bools && mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  437. (ints && SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  438. (ints && f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  439. (ints && mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  440. (floats && SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  441. (floats && f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  442. (floats && mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  443. (SamplerStates && bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  444. (SamplerStates && ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  445. (SamplerStates && floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  446. (SamplerStates && SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  447. (SamplerStates && f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  448. (SamplerStates && mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  449. (f3_ss && bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  450. (f3_ss && ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  451. (f3_ss && floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  452. (f3_ss && SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  453. (f3_ss && f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  454. (f3_ss && mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  455. (mixed_ss && bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  456. (mixed_ss && ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  457. (mixed_ss && floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  458. (mixed_ss && SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  459. (mixed_ss && f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  460. (mixed_ss && mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  461. (bools || SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  462. (bools || f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  463. (bools || mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  464. (ints || SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  465. (ints || f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  466. (ints || mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  467. (floats || SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  468. (floats || f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  469. (floats || mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  470. (SamplerStates || bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  471. (SamplerStates || ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  472. (SamplerStates || floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  473. (SamplerStates || SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  474. (SamplerStates || f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  475. (SamplerStates || mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  476. (f3_ss || bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  477. (f3_ss || ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  478. (f3_ss || floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  479. (f3_ss || SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  480. (f3_ss || f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  481. (f3_ss || mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  482. (mixed_ss || bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  483. (mixed_ss || ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  484. (mixed_ss || floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  485. (mixed_ss || SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  486. (mixed_ss || f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  487. (mixed_ss || mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  488. (bools = SamplerStates); // expected-error {{cannot convert from 'SamplerState' to 'bool'}} fxc-error {{X3017: cannot implicitly convert from 'SamplerState' to 'bool'}}
  489. (bools = f3_ss); // expected-error {{cannot implicitly convert from 'f3_s' to 'bool'}} fxc-error {{X3017: cannot convert from 'struct f3_s' to 'bool'}}
  490. (bools = mixed_ss); // expected-error {{cannot implicitly convert from 'mixed_s' to 'bool'}} fxc-error {{X3017: cannot convert from 'struct mixed_s' to 'bool'}}
  491. (ints = SamplerStates); // expected-error {{cannot convert from 'SamplerState' to 'int'}} fxc-error {{X3017: cannot implicitly convert from 'SamplerState' to 'int'}}
  492. (ints = f3_ss); // expected-error {{cannot implicitly convert from 'f3_s' to 'int'}} fxc-error {{X3017: cannot convert from 'struct f3_s' to 'int'}}
  493. (ints = mixed_ss); // expected-error {{cannot implicitly convert from 'mixed_s' to 'int'}} fxc-error {{X3017: cannot convert from 'struct mixed_s' to 'int'}}
  494. (floats = SamplerStates); // expected-error {{cannot convert from 'SamplerState' to 'float'}} fxc-error {{X3017: cannot implicitly convert from 'SamplerState' to 'float'}}
  495. (floats = f3_ss); // expected-error {{cannot implicitly convert from 'f3_s' to 'float'}} fxc-error {{X3017: cannot convert from 'struct f3_s' to 'float'}}
  496. (floats = mixed_ss); // expected-error {{cannot implicitly convert from 'mixed_s' to 'float'}} fxc-error {{X3017: cannot convert from 'struct mixed_s' to 'float'}}
  497. (SamplerStates = bools); // expected-error {{cannot convert from 'bool' to 'SamplerState'}} fxc-error {{X3017: cannot implicitly convert from 'bool' to 'SamplerState'}}
  498. (SamplerStates = ints); // expected-error {{cannot convert from 'int' to 'SamplerState'}} fxc-error {{X3017: cannot implicitly convert from 'int' to 'SamplerState'}}
  499. (SamplerStates = floats); // expected-error {{cannot convert from 'float' to 'SamplerState'}} fxc-error {{X3017: cannot implicitly convert from 'float' to 'SamplerState'}}
  500. // This confuses the semantic checks on template types, which are assumed to be only for built-in template-like constructs.
  501. // _Static_assert(std::is_same<SamplerState, __decltype(SamplerStates = SamplerStates)>::value, "");
  502. (SamplerStates = f3_ss); // expected-error {{cannot convert from 'f3_s' to 'SamplerState'}} fxc-error {{X3017: cannot implicitly convert from 'struct f3_s' to 'SamplerState'}}
  503. (SamplerStates = mixed_ss); // expected-error {{cannot convert from 'mixed_s' to 'SamplerState'}} fxc-error {{X3017: cannot implicitly convert from 'struct mixed_s' to 'SamplerState'}}
  504. (f3_ss = bools); // expected-error {{cannot implicitly convert from 'bool' to 'f3_s'}} fxc-error {{X3017: cannot convert from 'bool' to 'struct f3_s'}}
  505. (f3_ss = ints); // expected-error {{cannot implicitly convert from 'int' to 'f3_s'}} fxc-error {{X3017: cannot convert from 'int' to 'struct f3_s'}}
  506. (f3_ss = floats); // expected-error {{cannot implicitly convert from 'float' to 'f3_s'}} fxc-error {{X3017: cannot convert from 'float' to 'struct f3_s'}}
  507. (f3_ss = SamplerStates); // expected-error {{cannot convert from 'SamplerState' to 'f3_s'}} fxc-error {{X3017: cannot implicitly convert from 'SamplerState' to 'struct f3_s'}}
  508. _Static_assert(std::is_same<f3_s, __decltype(f3_ss = f3_ss)>::value, "");
  509. (f3_ss = mixed_ss); // expected-error {{cannot implicitly convert from 'mixed_s' to 'f3_s'}} fxc-error {{X3017: cannot convert from 'struct mixed_s' to 'struct f3_s'}}
  510. (mixed_ss = bools); // expected-error {{cannot implicitly convert from 'bool' to 'mixed_s'}} fxc-error {{X3017: cannot implicitly convert from 'bool' to 'struct mixed_s'}}
  511. (mixed_ss = ints); // expected-error {{cannot implicitly convert from 'int' to 'mixed_s'}} fxc-error {{X3017: cannot implicitly convert from 'int' to 'struct mixed_s'}}
  512. (mixed_ss = floats); // expected-error {{cannot implicitly convert from 'float' to 'mixed_s'}} fxc-error {{X3017: cannot implicitly convert from 'float' to 'struct mixed_s'}}
  513. (mixed_ss = SamplerStates); // expected-error {{cannot convert from 'SamplerState' to 'mixed_s'}} fxc-error {{X3017: cannot implicitly convert from 'SamplerState' to 'struct mixed_s'}}
  514. (mixed_ss = f3_ss); // expected-error {{cannot convert from 'f3_s' to 'mixed_s'}} fxc-error {{X3017: cannot implicitly convert from 'struct f3_s' to 'struct mixed_s'}}
  515. // This confuses the semantic checks on template types, which are assumed to be only for built-in template-like constructs.
  516. // _Static_assert(std::is_same<mixed_s, __decltype(mixed_ss = mixed_ss)>::value, "");
  517. (bools += SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  518. (bools += f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  519. (bools += mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  520. (ints += SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  521. (ints += f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  522. (ints += mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  523. (floats += SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  524. (floats += f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  525. (floats += mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  526. (SamplerStates += bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  527. (SamplerStates += ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  528. (SamplerStates += floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  529. (SamplerStates += SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  530. (SamplerStates += f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  531. (SamplerStates += mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  532. (f3_ss += bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  533. (f3_ss += ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  534. (f3_ss += floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  535. (f3_ss += SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  536. (f3_ss += f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  537. (f3_ss += mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  538. (mixed_ss += bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  539. (mixed_ss += ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  540. (mixed_ss += floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  541. (mixed_ss += SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  542. (mixed_ss += f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  543. (mixed_ss += mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  544. (bools -= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  545. (bools -= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  546. (bools -= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  547. (ints -= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  548. (ints -= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  549. (ints -= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  550. (floats -= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  551. (floats -= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  552. (floats -= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  553. (SamplerStates -= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  554. (SamplerStates -= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  555. (SamplerStates -= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  556. (SamplerStates -= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  557. (SamplerStates -= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  558. (SamplerStates -= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  559. (f3_ss -= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  560. (f3_ss -= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  561. (f3_ss -= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  562. (f3_ss -= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  563. (f3_ss -= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  564. (f3_ss -= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  565. (mixed_ss -= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  566. (mixed_ss -= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  567. (mixed_ss -= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  568. (mixed_ss -= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  569. (mixed_ss -= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  570. (mixed_ss -= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  571. (bools /= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  572. (bools /= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  573. (bools /= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  574. (ints /= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  575. (ints /= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  576. (ints /= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  577. (floats /= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  578. (floats /= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  579. (floats /= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  580. (SamplerStates /= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  581. (SamplerStates /= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  582. (SamplerStates /= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  583. (SamplerStates /= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  584. (SamplerStates /= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  585. (SamplerStates /= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  586. (f3_ss /= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  587. (f3_ss /= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  588. (f3_ss /= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  589. (f3_ss /= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  590. (f3_ss /= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  591. (f3_ss /= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  592. (mixed_ss /= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  593. (mixed_ss /= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  594. (mixed_ss /= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  595. (mixed_ss /= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  596. (mixed_ss /= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  597. (mixed_ss /= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  598. (bools %= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  599. (bools %= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  600. (bools %= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  601. (ints %= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  602. (ints %= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  603. (ints %= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  604. (floats %= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  605. (floats %= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  606. (floats %= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  607. (SamplerStates %= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  608. (SamplerStates %= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  609. (SamplerStates %= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  610. (SamplerStates %= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  611. (SamplerStates %= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  612. (SamplerStates %= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  613. (f3_ss %= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  614. (f3_ss %= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  615. (f3_ss %= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  616. (f3_ss %= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  617. (f3_ss %= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  618. (f3_ss %= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  619. (mixed_ss %= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  620. (mixed_ss %= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  621. (mixed_ss %= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  622. (mixed_ss %= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  623. (mixed_ss %= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  624. (mixed_ss %= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3022: scalar, vector, or matrix expected}}
  625. (bools <<= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  626. (bools <<= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  627. (bools <<= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  628. (ints <<= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  629. (ints <<= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  630. (ints <<= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  631. (floats <<= SamplerStates); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  632. (floats <<= f3_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  633. (floats <<= mixed_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  634. (SamplerStates <<= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  635. (SamplerStates <<= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  636. (SamplerStates <<= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  637. (SamplerStates <<= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  638. (SamplerStates <<= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  639. (SamplerStates <<= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  640. (f3_ss <<= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  641. (f3_ss <<= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  642. (f3_ss <<= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  643. (f3_ss <<= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  644. (f3_ss <<= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  645. (f3_ss <<= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  646. (mixed_ss <<= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  647. (mixed_ss <<= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  648. (mixed_ss <<= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  649. (mixed_ss <<= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  650. (mixed_ss <<= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  651. (mixed_ss <<= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  652. (bools >>= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  653. (bools >>= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  654. (bools >>= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  655. (ints >>= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  656. (ints >>= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  657. (ints >>= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  658. (floats >>= SamplerStates); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  659. (floats >>= f3_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  660. (floats >>= mixed_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  661. (SamplerStates >>= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  662. (SamplerStates >>= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  663. (SamplerStates >>= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  664. (SamplerStates >>= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  665. (SamplerStates >>= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  666. (SamplerStates >>= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  667. (f3_ss >>= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  668. (f3_ss >>= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  669. (f3_ss >>= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  670. (f3_ss >>= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  671. (f3_ss >>= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  672. (f3_ss >>= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  673. (mixed_ss >>= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  674. (mixed_ss >>= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  675. (mixed_ss >>= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  676. (mixed_ss >>= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  677. (mixed_ss >>= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  678. (mixed_ss >>= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  679. (bools &= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  680. (bools &= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  681. (bools &= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  682. (ints &= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  683. (ints &= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  684. (ints &= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  685. (floats &= SamplerStates); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  686. (floats &= f3_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  687. (floats &= mixed_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  688. (SamplerStates &= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  689. (SamplerStates &= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  690. (SamplerStates &= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  691. (SamplerStates &= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  692. (SamplerStates &= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  693. (SamplerStates &= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  694. (f3_ss &= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  695. (f3_ss &= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  696. (f3_ss &= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  697. (f3_ss &= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  698. (f3_ss &= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  699. (f3_ss &= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  700. (mixed_ss &= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  701. (mixed_ss &= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  702. (mixed_ss &= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  703. (mixed_ss &= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  704. (mixed_ss &= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  705. (mixed_ss &= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  706. (bools |= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  707. (bools |= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  708. (bools |= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  709. (ints |= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  710. (ints |= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  711. (ints |= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  712. (floats |= SamplerStates); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  713. (floats |= f3_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  714. (floats |= mixed_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  715. (SamplerStates |= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  716. (SamplerStates |= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  717. (SamplerStates |= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  718. (SamplerStates |= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  719. (SamplerStates |= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  720. (SamplerStates |= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  721. (f3_ss |= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  722. (f3_ss |= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  723. (f3_ss |= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  724. (f3_ss |= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  725. (f3_ss |= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  726. (f3_ss |= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  727. (mixed_ss |= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  728. (mixed_ss |= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  729. (mixed_ss |= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  730. (mixed_ss |= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  731. (mixed_ss |= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  732. (mixed_ss |= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  733. (bools ^= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  734. (bools ^= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  735. (bools ^= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  736. (ints ^= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  737. (ints ^= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  738. (ints ^= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  739. (floats ^= SamplerStates); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  740. (floats ^= f3_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  741. (floats ^= mixed_ss); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
  742. (SamplerStates ^= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  743. (SamplerStates ^= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  744. (SamplerStates ^= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  745. (SamplerStates ^= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  746. (SamplerStates ^= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  747. (SamplerStates ^= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  748. (f3_ss ^= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  749. (f3_ss ^= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  750. (f3_ss ^= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  751. (f3_ss ^= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  752. (f3_ss ^= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  753. (f3_ss ^= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  754. (mixed_ss ^= bools); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  755. (mixed_ss ^= ints); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  756. (mixed_ss ^= floats); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  757. (mixed_ss ^= SamplerStates); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  758. (mixed_ss ^= f3_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  759. (mixed_ss ^= mixed_ss); // expected-error {{scalar, vector, or matrix expected}} fxc-error {{X3082: int or unsigned int type required}}
  760. };