|
@@ -20,9 +20,9 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
float floats = 0;
|
|
float floats = 0;
|
|
double doubles = 0;
|
|
double doubles = 0;
|
|
min16float min16floats = 0;
|
|
min16float min16floats = 0;
|
|
- min10float min10floats = 0; // expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ min10float min10floats = 0; // expected-warning {{'min10float' is promoted to 'min16float'}} fxc-pass {{}}
|
|
min16int min16ints = 0;
|
|
min16int min16ints = 0;
|
|
- min12int min12ints = 0; // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
|
|
+ min12int min12ints = 0; // expected-warning {{'min12int' is promoted to 'min16int'}} fxc-pass {{}}
|
|
min16uint min16uints = 0;
|
|
min16uint min16uints = 0;
|
|
|
|
|
|
// _Static_assert(std::is_same<bool, bool>::value, "bool, bool failed");
|
|
// _Static_assert(std::is_same<bool, bool>::value, "bool, bool failed");
|
|
@@ -73,9 +73,9 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<float, __decltype(bools + floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(bools + floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(bools + doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(bools + doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(bools + min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(bools + min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(bools + min10floats)>::value, ""); // expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(bools + min10floats)>::value, ""); // fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16int, __decltype(bools + min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(bools + min16ints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(bools + min12ints)>::value, ""); /* expected-warning {{min12int is promoted to min16int}} fxc-pass {{}} */
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(bools + min12ints)>::value, ""); /* fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16uint, __decltype(bools + min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(bools + min16uints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints + bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints + bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints + ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints + ints)>::value, "");
|
|
@@ -84,7 +84,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<float, __decltype(ints + floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(ints + floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(ints + doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(ints + doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(ints + min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'int' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16float, __decltype(ints + min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'int' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
- _Static_assert(std::is_same<min10float, __decltype(ints + min10floats)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(ints + min10floats)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<int, __decltype(ints + min16ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints + min16ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints + min12ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints + min12ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(ints + min16uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(ints + min16uints)>::value, "");
|
|
@@ -95,7 +95,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<float, __decltype(uints + floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(uints + floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(uints + doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(uints + doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(uints + min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'uint' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16float, __decltype(uints + min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'uint' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
- _Static_assert(std::is_same<min10float, __decltype(uints + min10floats)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(uints + min10floats)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<uint, __decltype(uints + min16ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints + min16ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints + min12ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints + min12ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints + min16uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints + min16uints)>::value, "");
|
|
@@ -143,17 +143,17 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats + min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats + min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats + min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats + min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats + min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats + min16uints)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats + bools)>::value, ""); // expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats + ints)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats + uints)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats + bools)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats + ints)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats + uints)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<float, __decltype(min10floats + halfs)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min10floats + halfs)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min10floats + floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min10floats + floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min10floats + doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min10floats + doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min10floats + min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min10floats + min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats + min10floats)>::value, ""); // expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats + min16ints)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats + min12ints)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats + min16uints)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats + min10floats)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats + min16ints)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats + min12ints)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats + min16uints)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints + bools)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints + bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(min16ints + ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(min16ints + ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min16ints + uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min16ints + uints)>::value, "");
|
|
@@ -161,20 +161,20 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<float, __decltype(min16ints + floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min16ints + floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min16ints + doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min16ints + doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16ints + min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16ints + min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min16ints + min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min16ints + min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints + min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints + min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints + min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints + min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16ints + min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16ints + min16uints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints + bools)>::value, ""); /* expected-warning {{min12int is promoted to min16int}} fxc-pass {{}} */
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints + bools)>::value, ""); /* fxc-pass {{}} */
|
|
_Static_assert(std::is_same<int, __decltype(min12ints + ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(min12ints + ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min12ints + uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min12ints + uints)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min12ints + halfs)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min12ints + halfs)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min12ints + floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min12ints + floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min12ints + doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min12ints + doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min12ints + min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min12ints + min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min12ints + min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min12ints + min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16int, __decltype(min12ints + min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min12ints + min16ints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints + min12ints)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints + min12ints)>::value, ""); // fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16uint, __decltype(min12ints + min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min12ints + min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints + bools)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints + bools)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min16uints + ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min16uints + ints)>::value, "");
|
|
@@ -183,7 +183,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<float, __decltype(min16uints + floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min16uints + floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min16uints + doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min16uints + doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16uints + min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16uints + min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min16uints + min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min16uints + min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints + min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints + min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints + min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints + min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints + min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints + min16uints)>::value, "");
|
|
@@ -194,9 +194,9 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<float, __decltype(bools - floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(bools - floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(bools - doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(bools - doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(bools - min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(bools - min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(bools - min10floats)>::value, ""); // expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(bools - min10floats)>::value, ""); // fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16int, __decltype(bools - min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(bools - min16ints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(bools - min12ints)>::value, ""); /* expected-warning {{min12int is promoted to min16int}} fxc-pass {{}} */
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(bools - min12ints)>::value, ""); /* fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16uint, __decltype(bools - min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(bools - min16uints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints - bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints - bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints - ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints - ints)>::value, "");
|
|
@@ -205,7 +205,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<float, __decltype(ints - floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(ints - floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(ints - doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(ints - doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(ints - min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'int' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16float, __decltype(ints - min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'int' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
- _Static_assert(std::is_same<min10float, __decltype(ints - min10floats)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(ints - min10floats)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<int, __decltype(ints - min16ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints - min16ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints - min12ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints - min12ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(ints - min16uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(ints - min16uints)>::value, "");
|
|
@@ -216,7 +216,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<float, __decltype(uints - floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(uints - floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(uints - doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(uints - doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(uints - min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'uint' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16float, __decltype(uints - min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'uint' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
- _Static_assert(std::is_same<min10float, __decltype(uints - min10floats)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(uints - min10floats)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<uint, __decltype(uints - min16ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints - min16ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints - min12ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints - min12ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints - min16uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints - min16uints)>::value, "");
|
|
@@ -264,17 +264,17 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats - min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats - min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats - min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats - min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats - min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats - min16uints)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats - bools)>::value, ""); // expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats - ints)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats - uints)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats - bools)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats - ints)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats - uints)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<float, __decltype(min10floats - halfs)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min10floats - halfs)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min10floats - floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min10floats - floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min10floats - doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min10floats - doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min10floats - min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min10floats - min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats - min10floats)>::value, ""); // expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats - min16ints)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats - min12ints)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats - min16uints)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats - min10floats)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats - min16ints)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats - min12ints)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats - min16uints)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints - bools)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints - bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(min16ints - ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(min16ints - ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min16ints - uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min16ints - uints)>::value, "");
|
|
@@ -282,20 +282,20 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<float, __decltype(min16ints - floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min16ints - floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min16ints - doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min16ints - doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16ints - min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16ints - min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min16ints - min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min16ints - min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints - min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints - min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints - min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints - min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16ints - min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16ints - min16uints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints - bools)>::value, ""); /* expected-warning {{min12int is promoted to min16int}} fxc-pass {{}} */
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints - bools)>::value, ""); /* fxc-pass {{}} */
|
|
_Static_assert(std::is_same<int, __decltype(min12ints - ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(min12ints - ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min12ints - uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min12ints - uints)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min12ints - halfs)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min12ints - halfs)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min12ints - floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min12ints - floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min12ints - doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min12ints - doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min12ints - min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min12ints - min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min12ints - min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min12ints - min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16int, __decltype(min12ints - min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min12ints - min16ints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints - min12ints)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints - min12ints)>::value, ""); // fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16uint, __decltype(min12ints - min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min12ints - min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints - bools)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints - bools)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min16uints - ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min16uints - ints)>::value, "");
|
|
@@ -304,7 +304,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<float, __decltype(min16uints - floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min16uints - floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min16uints - doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min16uints - doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16uints - min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16uints - min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min16uints - min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min16uints - min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints - min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints - min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints - min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints - min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints - min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints - min16uints)>::value, "");
|
|
@@ -315,9 +315,9 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<float, __decltype(bools / floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(bools / floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(bools / doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(bools / doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(bools / min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(bools / min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(bools / min10floats)>::value, ""); // expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(bools / min10floats)>::value, ""); // fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16int, __decltype(bools / min16ints)>::value, ""); /* expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16int, __decltype(bools / min16ints)>::value, ""); /* expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-pass {{}} */
|
|
- _Static_assert(std::is_same<min12int, __decltype(bools / min12ints)>::value, ""); /* expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} expected-warning {{min12int is promoted to min16int}} fxc-pass {{}} */
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(bools / min12ints)>::value, ""); /* expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16uint, __decltype(bools / min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(bools / min16uints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints / bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints / bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints / ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints / ints)>::value, "");
|
|
@@ -326,7 +326,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<float, __decltype(ints / floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(ints / floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(ints / doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(ints / doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(ints / min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'int' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16float, __decltype(ints / min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'int' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
- _Static_assert(std::is_same<min10float, __decltype(ints / min10floats)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(ints / min10floats)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<int, __decltype(ints / min16ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints / min16ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints / min12ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints / min12ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(ints / min16uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(ints / min16uints)>::value, "");
|
|
@@ -337,7 +337,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<float, __decltype(uints / floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(uints / floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(uints / doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(uints / doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(uints / min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'uint' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16float, __decltype(uints / min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'uint' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
- _Static_assert(std::is_same<min10float, __decltype(uints / min10floats)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(uints / min10floats)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<uint, __decltype(uints / min16ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints / min16ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints / min12ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints / min12ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints / min16uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints / min16uints)>::value, "");
|
|
@@ -385,17 +385,17 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats / min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats / min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats / min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats / min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats / min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats / min16uints)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats / bools)>::value, ""); // expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats / ints)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats / uints)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats / bools)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats / ints)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats / uints)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<float, __decltype(min10floats / halfs)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min10floats / halfs)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min10floats / floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min10floats / floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min10floats / doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min10floats / doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min10floats / min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min10floats / min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats / min10floats)>::value, ""); // expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats / min16ints)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats / min12ints)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats / min16uints)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats / min10floats)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats / min16ints)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats / min12ints)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats / min16uints)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-52): error X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-52): error X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
// Note: binary operator promotes bool to int early, so this is an int division, which is legal.
|
|
// Note: binary operator promotes bool to int early, so this is an int division, which is legal.
|
|
// TODO: double check fxc behavior for this, since it should be similar
|
|
// TODO: double check fxc behavior for this, since it should be similar
|
|
@@ -407,7 +407,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<float, __decltype(min16ints / floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min16ints / floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min16ints / doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min16ints / doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16ints / min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16ints / min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min16ints / min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min16ints / min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
min16ints = (min16ints / min16ints); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-error {{X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.}}
|
|
min16ints = (min16ints / min16ints); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-error {{X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
@@ -417,14 +417,14 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
// Note: binary operator promotes bool to int early, so this is an int division, which is legal.
|
|
// Note: binary operator promotes bool to int early, so this is an int division, which is legal.
|
|
// TODO: double check fxc behavior for this, since it should be similar
|
|
// TODO: double check fxc behavior for this, since it should be similar
|
|
ints = (min12ints / bools); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-error {{X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.}}
|
|
ints = (min12ints / bools); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-error {{X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.}}
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints / bools)>::value, ""); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints / bools)>::value, ""); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<int, __decltype(min12ints / ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(min12ints / ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min12ints / uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min12ints / uints)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min12ints / halfs)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min12ints / halfs)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min12ints / floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min12ints / floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min12ints / doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min12ints / doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min12ints / min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min12ints / min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min12ints / min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min12ints / min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
min12ints = (min12ints / min16ints); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} expected-warning {{conversion from larger type 'min16int' to smaller type 'min12int', possible loss of data}} fxc-error {{X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.}} fxc-warning {{X3205: conversion from larger type to smaller, possible loss of data}}
|
|
min12ints = (min12ints / min16ints); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} expected-warning {{conversion from larger type 'min16int' to smaller type 'min12int', possible loss of data}} fxc-error {{X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.}} fxc-warning {{X3205: conversion from larger type to smaller, possible loss of data}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer division is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
@@ -437,7 +437,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<float, __decltype(min16uints / floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min16uints / floats)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min16uints / doubles)>::value, "");
|
|
_Static_assert(std::is_same<double, __decltype(min16uints / doubles)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16uints / min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16uints / min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min16uints / min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min16uints / min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints / min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints / min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints / min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints / min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints / min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints / min16uints)>::value, "");
|
|
@@ -449,9 +449,9 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-50): error X3684: modulo cannot be used with doubles, cast to float first;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-50): error X3684: modulo cannot be used with doubles, cast to float first;compilation failed; no code produced;
|
|
bools = (bools % doubles); // expected-error {{modulo cannot be used with doubles, cast to float first}} fxc-error {{X3684: modulo cannot be used with doubles, cast to float first}}
|
|
bools = (bools % doubles); // expected-error {{modulo cannot be used with doubles, cast to float first}} fxc-error {{X3684: modulo cannot be used with doubles, cast to float first}}
|
|
_Static_assert(std::is_same<min16float, __decltype(bools % min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(bools % min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(bools % min10floats)>::value, ""); // expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(bools % min10floats)>::value, ""); // fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16int, __decltype(bools % min16ints)>::value, ""); /* expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16int, __decltype(bools % min16ints)>::value, ""); /* expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-pass {{}} */
|
|
- _Static_assert(std::is_same<min12int, __decltype(bools % min12ints)>::value, ""); /* expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} expected-warning {{min12int is promoted to min16int}} fxc-pass {{}} */
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(bools % min12ints)>::value, ""); /* expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16uint, __decltype(bools % min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(bools % min16uints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints % bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints % bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints % ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints % ints)>::value, "");
|
|
@@ -461,7 +461,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-49): error X3684: modulo cannot be used with doubles, cast to float first;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-49): error X3684: modulo cannot be used with doubles, cast to float first;compilation failed; no code produced;
|
|
ints = (ints % doubles); // expected-error {{modulo cannot be used with doubles, cast to float first}} expected-warning {{conversion from larger type 'double' to smaller type 'int', possible loss of data}} fxc-error {{X3684: modulo cannot be used with doubles, cast to float first}} fxc-warning {{X3205: conversion from larger type to smaller, possible loss of data}}
|
|
ints = (ints % doubles); // expected-error {{modulo cannot be used with doubles, cast to float first}} expected-warning {{conversion from larger type 'double' to smaller type 'int', possible loss of data}} fxc-error {{X3684: modulo cannot be used with doubles, cast to float first}} fxc-warning {{X3205: conversion from larger type to smaller, possible loss of data}}
|
|
_Static_assert(std::is_same<min16float, __decltype(ints % min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'int' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16float, __decltype(ints % min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'int' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
- _Static_assert(std::is_same<min10float, __decltype(ints % min10floats)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(ints % min10floats)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<int, __decltype(ints % min16ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints % min16ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints % min12ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints % min12ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(ints % min16uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(ints % min16uints)>::value, "");
|
|
@@ -473,7 +473,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-50): error X3684: modulo cannot be used with doubles, cast to float first;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-50): error X3684: modulo cannot be used with doubles, cast to float first;compilation failed; no code produced;
|
|
uints = (uints % doubles); // expected-error {{modulo cannot be used with doubles, cast to float first}} expected-warning {{conversion from larger type 'double' to smaller type 'uint', possible loss of data}} fxc-error {{X3684: modulo cannot be used with doubles, cast to float first}} fxc-warning {{X3205: conversion from larger type to smaller, possible loss of data}}
|
|
uints = (uints % doubles); // expected-error {{modulo cannot be used with doubles, cast to float first}} expected-warning {{conversion from larger type 'double' to smaller type 'uint', possible loss of data}} fxc-error {{X3684: modulo cannot be used with doubles, cast to float first}} fxc-warning {{X3205: conversion from larger type to smaller, possible loss of data}}
|
|
_Static_assert(std::is_same<min16float, __decltype(uints % min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'uint' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16float, __decltype(uints % min16floats)>::value, ""); /* expected-warning {{conversion from larger type 'uint' to smaller type 'min16float', possible loss of data}} fxc-pass {{}} */
|
|
- _Static_assert(std::is_same<min10float, __decltype(uints % min10floats)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(uints % min10floats)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<uint, __decltype(uints % min16ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints % min16ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints % min12ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints % min12ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints % min16uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(uints % min16uints)>::value, "");
|
|
@@ -535,18 +535,18 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats % min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats % min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats % min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats % min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats % min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16floats % min16uints)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats % bools)>::value, ""); // expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats % ints)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats % uints)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats % bools)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats % ints)>::value, ""); // expected-warning {{conversion from larger type 'int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats % uints)>::value, ""); // expected-warning {{conversion from larger type 'uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<float, __decltype(min10floats % halfs)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min10floats % halfs)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min10floats % floats)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min10floats % floats)>::value, "");
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3684: modulo cannot be used with doubles, cast to float first;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3684: modulo cannot be used with doubles, cast to float first;compilation failed; no code produced;
|
|
min10floats = (min10floats % doubles); // expected-error {{modulo cannot be used with doubles, cast to float first}} expected-warning {{conversion from larger type 'double' to smaller type 'min10float', possible loss of data}} fxc-error {{X3684: modulo cannot be used with doubles, cast to float first}} fxc-warning {{X3205: conversion from larger type to smaller, possible loss of data}}
|
|
min10floats = (min10floats % doubles); // expected-error {{modulo cannot be used with doubles, cast to float first}} expected-warning {{conversion from larger type 'double' to smaller type 'min10float', possible loss of data}} fxc-error {{X3684: modulo cannot be used with doubles, cast to float first}} fxc-warning {{X3205: conversion from larger type to smaller, possible loss of data}}
|
|
_Static_assert(std::is_same<min16float, __decltype(min10floats % min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min10floats % min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats % min10floats)>::value, ""); // expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats % min16ints)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats % min12ints)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min10float, __decltype(min10floats % min16uints)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats % min10floats)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats % min16ints)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats % min12ints)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min10floats % min16uints)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-52): error X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-52): error X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
// Note: binary operator promotes bool to int early, so this is an int division, which is legal.
|
|
// Note: binary operator promotes bool to int early, so this is an int division, which is legal.
|
|
// TODO: double check fxc behavior for this, since it should be similar
|
|
// TODO: double check fxc behavior for this, since it should be similar
|
|
@@ -559,7 +559,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-54): error X3684: modulo cannot be used with doubles, cast to float first;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-54): error X3684: modulo cannot be used with doubles, cast to float first;compilation failed; no code produced;
|
|
min16ints = (min16ints % doubles); // expected-error {{modulo cannot be used with doubles, cast to float first}} expected-warning {{conversion from larger type 'double' to smaller type 'min16int', possible loss of data}} fxc-error {{X3684: modulo cannot be used with doubles, cast to float first}} fxc-warning {{X3205: conversion from larger type to smaller, possible loss of data}}
|
|
min16ints = (min16ints % doubles); // expected-error {{modulo cannot be used with doubles, cast to float first}} expected-warning {{conversion from larger type 'double' to smaller type 'min16int', possible loss of data}} fxc-error {{X3684: modulo cannot be used with doubles, cast to float first}} fxc-warning {{X3205: conversion from larger type to smaller, possible loss of data}}
|
|
_Static_assert(std::is_same<min16float, __decltype(min16ints % min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16ints % min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min16ints % min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min16ints % min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
min16ints = (min16ints % min16ints); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-error {{X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.}}
|
|
min16ints = (min16ints % min16ints); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-error {{X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
@@ -569,7 +569,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
// Note: binary operator promotes bool to int early, so this is an int division, which is legal.
|
|
// Note: binary operator promotes bool to int early, so this is an int division, which is legal.
|
|
// TODO: double check fxc behavior for this, since it should be similar
|
|
// TODO: double check fxc behavior for this, since it should be similar
|
|
ints = (min12ints % bools); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-error {{X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.}}
|
|
ints = (min12ints % bools); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-error {{X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.}}
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints % bools)>::value, ""); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints % bools)>::value, ""); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<int, __decltype(min12ints % ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(min12ints % ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min12ints % uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min12ints % uints)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min12ints % halfs)>::value, "");
|
|
_Static_assert(std::is_same<float, __decltype(min12ints % halfs)>::value, "");
|
|
@@ -577,7 +577,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-54): error X3684: modulo cannot be used with doubles, cast to float first;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-54): error X3684: modulo cannot be used with doubles, cast to float first;compilation failed; no code produced;
|
|
min16ints = (min12ints % doubles); // expected-error {{modulo cannot be used with doubles, cast to float first}} expected-warning {{conversion from larger type 'double' to smaller type 'min16int', possible loss of data}} fxc-error {{X3684: modulo cannot be used with doubles, cast to float first}} fxc-warning {{X3205: conversion from larger type to smaller, possible loss of data}}
|
|
min16ints = (min12ints % doubles); // expected-error {{modulo cannot be used with doubles, cast to float first}} expected-warning {{conversion from larger type 'double' to smaller type 'min16int', possible loss of data}} fxc-error {{X3684: modulo cannot be used with doubles, cast to float first}} fxc-warning {{X3205: conversion from larger type to smaller, possible loss of data}}
|
|
_Static_assert(std::is_same<min16float, __decltype(min12ints % min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min12ints % min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min12ints % min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min12ints % min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min12int' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
min16ints = (min12ints % min16ints); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-error {{X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.}}
|
|
min16ints = (min12ints % min16ints); // expected-error {{signed integer division is not supported on minimum-precision types, cast to int to use 32-bit division}} fxc-error {{X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-56): error X3706: signed integer remainder is not supported on minimum-precision types. Cast to int to use 32-bit division.;compilation failed; no code produced;
|
|
@@ -591,7 +591,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-55): error X3684: modulo cannot be used with doubles, cast to float first;compilation failed; no code produced;
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-55): error X3684: modulo cannot be used with doubles, cast to float first;compilation failed; no code produced;
|
|
min16ints = (min16uints % doubles); // expected-error {{modulo cannot be used with doubles, cast to float first}} expected-warning {{conversion from larger type 'double' to smaller type 'min16int', possible loss of data}} fxc-error {{X3684: modulo cannot be used with doubles, cast to float first}} fxc-warning {{X3205: conversion from larger type to smaller, possible loss of data}}
|
|
min16ints = (min16uints % doubles); // expected-error {{modulo cannot be used with doubles, cast to float first}} expected-warning {{conversion from larger type 'double' to smaller type 'min16int', possible loss of data}} fxc-error {{X3684: modulo cannot be used with doubles, cast to float first}} fxc-warning {{X3205: conversion from larger type to smaller, possible loss of data}}
|
|
_Static_assert(std::is_same<min16float, __decltype(min16uints % min16floats)>::value, "");
|
|
_Static_assert(std::is_same<min16float, __decltype(min16uints % min16floats)>::value, "");
|
|
- _Static_assert(std::is_same<min10float, __decltype(min16uints % min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} expected-warning {{min10float is promoted to min16float}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min10float, __decltype(min16uints % min10floats)>::value, ""); // expected-warning {{conversion from larger type 'min16uint' to smaller type 'min10float', possible loss of data}} fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints % min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints % min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints % min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints % min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints % min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints % min16uints)>::value, "");
|
|
@@ -1495,9 +1495,9 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints << min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints << min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints << min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints << min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints << min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints << min16uints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints << bools)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints << ints)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints << uints)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints << bools)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints << ints)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints << uints)>::value, ""); // fxc-pass {{}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-53): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-54): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-53): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-54): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
min12ints = (min12ints << halfs); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
min12ints = (min12ints << halfs); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-54): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-55): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-54): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-55): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
@@ -1508,9 +1508,9 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
min12ints = (min12ints << min16floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
min12ints = (min12ints << min16floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-59): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-60): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-59): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-60): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
min12ints = (min12ints << min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
min12ints = (min12ints << min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints << min16ints)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints << min12ints)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints << min16uints)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints << min16ints)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints << min12ints)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints << min16uints)>::value, ""); // fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints << bools)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints << bools)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints << ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints << ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints << uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints << uints)>::value, "");
|
|
@@ -1701,9 +1701,9 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints >> min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints >> min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints >> min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints >> min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints >> min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints >> min16uints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints >> bools)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints >> ints)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints >> uints)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints >> bools)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints >> ints)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints >> uints)>::value, ""); // fxc-pass {{}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-53): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-54): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-53): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-54): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
min12ints = (min12ints >> halfs); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
min12ints = (min12ints >> halfs); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-54): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-55): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-54): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-55): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
@@ -1714,9 +1714,9 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
min12ints = (min12ints >> min16floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
min12ints = (min12ints >> min16floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-59): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-60): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-59): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-60): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
min12ints = (min12ints >> min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
min12ints = (min12ints >> min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints >> min16ints)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints >> min12ints)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints >> min16uints)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints >> min16ints)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints >> min12ints)>::value, ""); // fxc-pass {{}}
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints >> min16uints)>::value, ""); // fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints >> bools)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints >> bools)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints >> ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints >> ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints >> uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints >> uints)>::value, "");
|
|
@@ -1747,7 +1747,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-54): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-55): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-54): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-55): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
bools = (bools & min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
bools = (bools & min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
_Static_assert(std::is_same<min16int, __decltype(bools & min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(bools & min16ints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(bools & min12ints)>::value, ""); /* expected-warning {{min12int is promoted to min16int}} fxc-pass {{}} */
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(bools & min12ints)>::value, ""); /* fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16uint, __decltype(bools & min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(bools & min16uints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints & bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints & bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints & ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints & ints)>::value, "");
|
|
@@ -1907,7 +1907,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints & min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints & min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints & min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints & min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16ints & min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16ints & min16uints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints & bools)>::value, ""); /* expected-warning {{min12int is promoted to min16int}} fxc-pass {{}} */
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints & bools)>::value, ""); /* fxc-pass {{}} */
|
|
_Static_assert(std::is_same<int, __decltype(min12ints & ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(min12ints & ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min12ints & uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min12ints & uints)>::value, "");
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-52): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-53): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-52): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-53): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
@@ -1921,7 +1921,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-58): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-59): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-58): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-59): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
min12ints = (min12ints & min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
min12ints = (min12ints & min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
_Static_assert(std::is_same<min16int, __decltype(min12ints & min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min12ints & min16ints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints & min12ints)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints & min12ints)>::value, ""); // fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16uint, __decltype(min12ints & min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min12ints & min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints & bools)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints & bools)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min16uints & ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min16uints & ints)>::value, "");
|
|
@@ -1953,7 +1953,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-54): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-55): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-54): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-55): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
bools = (bools | min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
bools = (bools | min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
_Static_assert(std::is_same<min16int, __decltype(bools | min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(bools | min16ints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(bools | min12ints)>::value, ""); /* expected-warning {{min12int is promoted to min16int}} fxc-pass {{}} */
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(bools | min12ints)>::value, ""); /* fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16uint, __decltype(bools | min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(bools | min16uints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints | bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints | bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints | ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints | ints)>::value, "");
|
|
@@ -2113,7 +2113,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints | min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints | min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints | min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints | min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16ints | min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16ints | min16uints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints | bools)>::value, ""); /* expected-warning {{min12int is promoted to min16int}} fxc-pass {{}} */
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints | bools)>::value, ""); /* fxc-pass {{}} */
|
|
_Static_assert(std::is_same<int, __decltype(min12ints | ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(min12ints | ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min12ints | uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min12ints | uints)>::value, "");
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-52): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-53): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-52): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-53): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
@@ -2127,7 +2127,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-58): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-59): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-58): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-59): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
min12ints = (min12ints | min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
min12ints = (min12ints | min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
_Static_assert(std::is_same<min16int, __decltype(min12ints | min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min12ints | min16ints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints | min12ints)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints | min12ints)>::value, ""); // fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16uint, __decltype(min12ints | min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min12ints | min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints | bools)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints | bools)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min16uints | ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min16uints | ints)>::value, "");
|
|
@@ -2159,7 +2159,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-54): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-55): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-54): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-55): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
bools = (bools ^ min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
bools = (bools ^ min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
_Static_assert(std::is_same<min16int, __decltype(bools ^ min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(bools ^ min16ints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(bools ^ min12ints)>::value, ""); /* expected-warning {{min12int is promoted to min16int}} fxc-pass {{}} */
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(bools ^ min12ints)>::value, ""); /* fxc-pass {{}} */
|
|
_Static_assert(std::is_same<min16uint, __decltype(bools ^ min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(bools ^ min16uints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints ^ bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints ^ bools)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints ^ ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(ints ^ ints)>::value, "");
|
|
@@ -2319,7 +2319,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints ^ min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints ^ min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints ^ min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min16ints ^ min12ints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16ints ^ min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16ints ^ min16uints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints ^ bools)>::value, ""); /* expected-warning {{min12int is promoted to min16int}} fxc-pass {{}} */
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints ^ bools)>::value, ""); /* fxc-pass {{}} */
|
|
_Static_assert(std::is_same<int, __decltype(min12ints ^ ints)>::value, "");
|
|
_Static_assert(std::is_same<int, __decltype(min12ints ^ ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min12ints ^ uints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min12ints ^ uints)>::value, "");
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-52): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-53): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-52): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-53): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
@@ -2333,7 +2333,7 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-58): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-59): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
// X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,22-58): error X3082: int or unsigned int type required;X:\temp\Sfbl_grfx_dev_p\x86\chk\operators.js.hlsl(16,12-59): error X3013: 'get_value': no matching 1 parameter function;compilation failed; no code produced
|
|
min12ints = (min12ints ^ min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
min12ints = (min12ints ^ min10floats); // expected-error {{int or unsigned int type required}} fxc-error {{X3082: int or unsigned int type required}}
|
|
_Static_assert(std::is_same<min16int, __decltype(min12ints ^ min16ints)>::value, "");
|
|
_Static_assert(std::is_same<min16int, __decltype(min12ints ^ min16ints)>::value, "");
|
|
- _Static_assert(std::is_same<min12int, __decltype(min12ints ^ min12ints)>::value, ""); // expected-warning {{min12int is promoted to min16int}} fxc-pass {{}}
|
|
|
|
|
|
+ _Static_assert(std::is_same<min12int, __decltype(min12ints ^ min12ints)>::value, ""); // fxc-pass {{}}
|
|
_Static_assert(std::is_same<min16uint, __decltype(min12ints ^ min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min12ints ^ min16uints)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints ^ bools)>::value, "");
|
|
_Static_assert(std::is_same<min16uint, __decltype(min16uints ^ bools)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min16uints ^ ints)>::value, "");
|
|
_Static_assert(std::is_same<uint, __decltype(min16uints ^ ints)>::value, "");
|
|
@@ -2595,4 +2595,4 @@ float4 plain(float4 param4 : FOO) : FOO {
|
|
_Static_assert(std::is_same<bool, __decltype(min16uints || min16uints)>::value, "");
|
|
_Static_assert(std::is_same<bool, __decltype(min16uints || min16uints)>::value, "");
|
|
|
|
|
|
return param4;
|
|
return param4;
|
|
-}
|
|
|
|
|
|
+}
|