add negative float conversions to test constantUnaryConversion.comp
authorMarius Hillenbrand <mhillen@linux.ibm.com>
Mon, 15 Nov 2021 15:30:15 +0000 (16:30 +0100)
committerGreg Fischer <greg@lunarg.com>
Mon, 15 Nov 2021 21:00:22 +0000 (14:00 -0700)
Add conversions from negative float16_t and float32_t to bool, all
signed integer types (i.e., including those in
GL_EXT_shader_explicit_arithmetic_types), and all float types (from the
same extension) to extend coverage.

Note that converting negative float values to unsigned integers is
undefined behavior. Thus, we exclude them.

Test/baseResults/constantUnaryConversion.comp.out
Test/constantUnaryConversion.comp

index fcaf6f2..752745a 100644 (file)
@@ -3,8 +3,8 @@ Shader version: 450
 Requested GL_EXT_shader_explicit_arithmetic_types
 local_size = (1, 1, 1)
 0:? Sequence
-0:48  Function Definition: main( ( global void)
-0:48    Function Parameters: 
+0:69  Function Definition: main( ( global void)
+0:69    Function Parameters: 
 0:?   Linker Objects
 0:?     'bool_init' ( const bool)
 0:?       true (const bool)
@@ -30,6 +30,12 @@ local_size = (1, 1, 1)
 0:?       13.000000
 0:?     'float64_t_init' ( const double)
 0:?       -4.000000
+0:?     'neg_float16_t_init' ( const float16_t)
+0:?       -42.000000
+0:?     'neg_float32_t_init' ( const float)
+0:?       -13.000000
+0:?     'neg_float64_t_init' ( const double)
+0:?       -4.000000
 0:?     'bool_to_bool' ( const bool)
 0:?       true (const bool)
 0:?     'int8_t_to_bool' ( const bool)
@@ -318,6 +324,54 @@ local_size = (1, 1, 1)
 0:?       13.000000
 0:?     'float64_t_to_float64_t' ( const double)
 0:?       -4.000000
+0:?     'neg_float16_t_to_bool' ( const bool)
+0:?       true (const bool)
+0:?     'neg_float32_t_to_bool' ( const bool)
+0:?       true (const bool)
+0:?     'neg_float64_t_to_bool' ( const bool)
+0:?       true (const bool)
+0:?     'neg_float16_t_to_int8_t' ( const int8_t)
+0:?       -42 (const int8_t)
+0:?     'neg_float32_t_to_int8_t' ( const int8_t)
+0:?       -13 (const int8_t)
+0:?     'neg_float64_t_to_int8_t' ( const int8_t)
+0:?       -4 (const int8_t)
+0:?     'neg_float16_t_to_int16_t' ( const int16_t)
+0:?       -42 (const int16_t)
+0:?     'neg_float32_t_to_int16_t' ( const int16_t)
+0:?       -13 (const int16_t)
+0:?     'neg_float64_t_to_int16_t' ( const int16_t)
+0:?       -4 (const int16_t)
+0:?     'neg_float16_t_to_int32_t' ( const int)
+0:?       -42 (const int)
+0:?     'neg_float32_t_to_int32_t' ( const int)
+0:?       -13 (const int)
+0:?     'neg_float64_t_to_int32_t' ( const int)
+0:?       -4 (const int)
+0:?     'neg_float16_t_to_int64_t' ( const int64_t)
+0:?       -42 (const int64_t)
+0:?     'neg_float32_t_to_int64_t' ( const int64_t)
+0:?       -13 (const int64_t)
+0:?     'neg_float64_t_to_int64_t' ( const int64_t)
+0:?       -4 (const int64_t)
+0:?     'neg_float16_t_to_float16_t' ( const float16_t)
+0:?       -42.000000
+0:?     'neg_float32_t_to_float16_t' ( const float16_t)
+0:?       -13.000000
+0:?     'neg_float64_t_to_float16_t' ( const float16_t)
+0:?       -4.000000
+0:?     'neg_float16_t_to_float32_t' ( const float)
+0:?       -42.000000
+0:?     'neg_float32_t_to_float32_t' ( const float)
+0:?       -13.000000
+0:?     'neg_float64_t_to_float32_t' ( const float)
+0:?       -4.000000
+0:?     'neg_float16_t_to_float64_t' ( const double)
+0:?       -42.000000
+0:?     'neg_float32_t_to_float64_t' ( const double)
+0:?       -13.000000
+0:?     'neg_float64_t_to_float64_t' ( const double)
+0:?       -4.000000
 
 
 Linked compute stage:
@@ -327,8 +381,8 @@ Shader version: 450
 Requested GL_EXT_shader_explicit_arithmetic_types
 local_size = (1, 1, 1)
 0:? Sequence
-0:48  Function Definition: main( ( global void)
-0:48    Function Parameters: 
+0:69  Function Definition: main( ( global void)
+0:69    Function Parameters: 
 0:?   Linker Objects
 0:?     'bool_init' ( const bool)
 0:?       true (const bool)
@@ -354,6 +408,12 @@ local_size = (1, 1, 1)
 0:?       13.000000
 0:?     'float64_t_init' ( const double)
 0:?       -4.000000
+0:?     'neg_float16_t_init' ( const float16_t)
+0:?       -42.000000
+0:?     'neg_float32_t_init' ( const float)
+0:?       -13.000000
+0:?     'neg_float64_t_init' ( const double)
+0:?       -4.000000
 0:?     'bool_to_bool' ( const bool)
 0:?       true (const bool)
 0:?     'int8_t_to_bool' ( const bool)
@@ -642,4 +702,52 @@ local_size = (1, 1, 1)
 0:?       13.000000
 0:?     'float64_t_to_float64_t' ( const double)
 0:?       -4.000000
+0:?     'neg_float16_t_to_bool' ( const bool)
+0:?       true (const bool)
+0:?     'neg_float32_t_to_bool' ( const bool)
+0:?       true (const bool)
+0:?     'neg_float64_t_to_bool' ( const bool)
+0:?       true (const bool)
+0:?     'neg_float16_t_to_int8_t' ( const int8_t)
+0:?       -42 (const int8_t)
+0:?     'neg_float32_t_to_int8_t' ( const int8_t)
+0:?       -13 (const int8_t)
+0:?     'neg_float64_t_to_int8_t' ( const int8_t)
+0:?       -4 (const int8_t)
+0:?     'neg_float16_t_to_int16_t' ( const int16_t)
+0:?       -42 (const int16_t)
+0:?     'neg_float32_t_to_int16_t' ( const int16_t)
+0:?       -13 (const int16_t)
+0:?     'neg_float64_t_to_int16_t' ( const int16_t)
+0:?       -4 (const int16_t)
+0:?     'neg_float16_t_to_int32_t' ( const int)
+0:?       -42 (const int)
+0:?     'neg_float32_t_to_int32_t' ( const int)
+0:?       -13 (const int)
+0:?     'neg_float64_t_to_int32_t' ( const int)
+0:?       -4 (const int)
+0:?     'neg_float16_t_to_int64_t' ( const int64_t)
+0:?       -42 (const int64_t)
+0:?     'neg_float32_t_to_int64_t' ( const int64_t)
+0:?       -13 (const int64_t)
+0:?     'neg_float64_t_to_int64_t' ( const int64_t)
+0:?       -4 (const int64_t)
+0:?     'neg_float16_t_to_float16_t' ( const float16_t)
+0:?       -42.000000
+0:?     'neg_float32_t_to_float16_t' ( const float16_t)
+0:?       -13.000000
+0:?     'neg_float64_t_to_float16_t' ( const float16_t)
+0:?       -4.000000
+0:?     'neg_float16_t_to_float32_t' ( const float)
+0:?       -42.000000
+0:?     'neg_float32_t_to_float32_t' ( const float)
+0:?       -13.000000
+0:?     'neg_float64_t_to_float32_t' ( const float)
+0:?       -4.000000
+0:?     'neg_float16_t_to_float64_t' ( const double)
+0:?       -42.000000
+0:?     'neg_float32_t_to_float64_t' ( const double)
+0:?       -13.000000
+0:?     'neg_float64_t_to_float64_t' ( const double)
+0:?       -4.000000
 
index 3c479ae..7226a26 100644 (file)
@@ -15,9 +15,16 @@ const float16_t float16_t_init = float16_t(42.0);
 const float32_t float32_t_init = float32_t(13.0);\r
 const float64_t float64_t_init = float64_t(-4.0);\r
 \r
+const float16_t neg_float16_t_init = float16_t(-42.0);\r
+const float32_t neg_float32_t_init = float32_t(-13.0);\r
+const float64_t neg_float64_t_init = float64_t(-4.0);\r
+\r
 #define TYPE_TO_TYPE(x, y) \\r
     const x y##_to_##x = x(y##_init)\r
 \r
+#define TYPE_TO_TYPE_PREFIX(prefix, x, y) \\r
+    const x prefix##_##y##_to_##x = x(prefix##_##y##_init)\r
+\r
 #define TYPE_TO(x)              \\r
     TYPE_TO_TYPE(x, bool);      \\r
     TYPE_TO_TYPE(x, int8_t);    \\r
@@ -45,4 +52,18 @@ TYPE_TO(float16_t);
 TYPE_TO(float32_t);\r
 TYPE_TO(float64_t);\r
 \r
+#define NEG_FLOAT_TO(x) \\r
+    TYPE_TO_TYPE_PREFIX(neg, x, float16_t); \\r
+    TYPE_TO_TYPE_PREFIX(neg, x, float32_t); \\r
+    TYPE_TO_TYPE_PREFIX(neg, x, float64_t)\r
+\r
+NEG_FLOAT_TO(bool);\r
+NEG_FLOAT_TO(int8_t);\r
+NEG_FLOAT_TO(int16_t);\r
+NEG_FLOAT_TO(int32_t);\r
+NEG_FLOAT_TO(int64_t);\r
+NEG_FLOAT_TO(float16_t);\r
+NEG_FLOAT_TO(float32_t);\r
+NEG_FLOAT_TO(float64_t);\r
+\r
 void main() {}\r