diff --git a/tests/padds_i16-2.ispc b/tests/padds_i16-2.ispc deleted file mode 100644 index 83234804..00000000 --- a/tests/padds_i16-2.ispc +++ /dev/null @@ -1,11 +0,0 @@ - -export uniform int width() { return programCount; } - -export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { - uniform int16 a = -32768; // min signed int16 - RET[programIndex] = saturating_add(a, -b); -} - -export void result(uniform float RET[]) { - RET[programIndex] = (uniform int16) -32768; -} diff --git a/tests/padds_i16.ispc b/tests/padds_i16.ispc index e5456416..c763dd37 100644 --- a/tests/padds_i16.ispc +++ b/tests/padds_i16.ispc @@ -2,10 +2,26 @@ export uniform int width() { return programCount; } export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { - uniform int16 a = 32767; // max signed int16 - RET[programIndex] = saturating_add(a, b); + uniform int16 a_max = 32767, a_min = -32768; // max and min signed int16 + if (programIndex % 3 == 0) { + RET[programIndex] = saturating_add(a_max, b); + } + else if (programIndex % 3 == 1) { + RET[programIndex] = saturating_add(a_min, -b); + } + else { + RET[programIndex] = saturating_add(a_min, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (uniform int16) 32767; + if (programIndex % 3 == 0) { + RET[programIndex] = (uniform int16) 32767; + } + else if (programIndex % 3 == 1) { + RET[programIndex] = (uniform int16) -32768; + } + else { + RET[programIndex] = (uniform int16) -32763; + } } diff --git a/tests/padds_i8-2.ispc b/tests/padds_i8-2.ispc deleted file mode 100644 index 9a303d70..00000000 --- a/tests/padds_i8-2.ispc +++ /dev/null @@ -1,11 +0,0 @@ - -export uniform int width() { return programCount; } - -export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { - uniform int8 a = -128; // min signed int8 - RET[programIndex] = saturating_add(a, -b); -} - -export void result(uniform float RET[]) { - RET[programIndex] = (uniform int8) -128; -} diff --git a/tests/padds_i8.ispc b/tests/padds_i8.ispc index bbcc4cc7..7d272828 100644 --- a/tests/padds_i8.ispc +++ b/tests/padds_i8.ispc @@ -2,10 +2,26 @@ export uniform int width() { return programCount; } export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { - uniform int8 a = 127; // max signed int8 - RET[programIndex] = saturating_add(a, b); + uniform int8 a_max = 127, a_min = -128; // max and min signed int8 + if (programIndex % 3 == 0) { + RET[programIndex] = saturating_add(a_max, b); + } + else if (programIndex % 3 == 1) { + RET[programIndex] = saturating_add(a_min, -b); + } + else { + RET[programIndex] = saturating_add(a_min, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (uniform int8) 127; + if (programIndex % 3 == 0) { + RET[programIndex] = (uniform int8) 127; + } + else if (programIndex % 3 == 1) { + RET[programIndex] = (uniform int8) -128; + } + else { + RET[programIndex] = (uniform int8) -123; + } } diff --git a/tests/padds_vi16-2.ispc b/tests/padds_vi16-2.ispc deleted file mode 100644 index 5f1eda37..00000000 --- a/tests/padds_vi16-2.ispc +++ /dev/null @@ -1,11 +0,0 @@ - -export uniform int width() { return programCount; } - -export void f_f(uniform float RET[], uniform float aFOO[]) { - varying int16 a = -32768, b = aFOO[programIndex]; // max signed int16 - RET[programIndex] = saturating_add(a, -b); -} - -export void result(uniform float RET[]) { - RET[programIndex] = (varying int16) -32768; -} diff --git a/tests/padds_vi16.ispc b/tests/padds_vi16.ispc index e3bd0f51..5834a47a 100644 --- a/tests/padds_vi16.ispc +++ b/tests/padds_vi16.ispc @@ -1,11 +1,27 @@ export uniform int width() { return programCount; } -export void f_f(uniform float RET[], uniform float aFOO[]) { - varying int16 a = 32767, b = aFOO[programIndex]; // max signed int16 - RET[programIndex] = saturating_add(a, b); +export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { + varying int16 a_max = 32767, a_min = -32768; // max and min signed int16 + if (programIndex % 3 == 0) { + RET[programIndex] = saturating_add(a_max, b); + } + else if (programIndex % 3 == 1) { + RET[programIndex] = saturating_add(a_min, -b); + } + else { + RET[programIndex] = saturating_add(a_min, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (varying int16) 32767; + if (programIndex % 3 == 0) { + RET[programIndex] = (varying int16) 32767; + } + else if (programIndex % 3 == 1) { + RET[programIndex] = (varying int16) -32768; + } + else { + RET[programIndex] = (varying int16) -32763; + } } diff --git a/tests/padds_vi8-2.ispc b/tests/padds_vi8-2.ispc deleted file mode 100644 index e3302d18..00000000 --- a/tests/padds_vi8-2.ispc +++ /dev/null @@ -1,11 +0,0 @@ - -export uniform int width() { return programCount; } - -export void f_f(uniform float RET[], uniform float aFOO[]) { - varying int8 a = -128, b = aFOO[programIndex]; // max signed int8 - RET[programIndex] = saturating_add(a, -b); -} - -export void result(uniform float RET[]) { - RET[programIndex] = (varying int8) -128; -} diff --git a/tests/padds_vi8.ispc b/tests/padds_vi8.ispc index df921414..0aca03d4 100644 --- a/tests/padds_vi8.ispc +++ b/tests/padds_vi8.ispc @@ -1,11 +1,27 @@ export uniform int width() { return programCount; } -export void f_f(uniform float RET[], uniform float aFOO[]) { - varying int8 a = 127, b = aFOO[programIndex]; // max signed int8 - RET[programIndex] = saturating_add(a, b); +export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { + varying int8 a_max = 127, a_min = -128; // max and min signed int8 + if (programIndex % 3 == 0) { + RET[programIndex] = saturating_add(a_max, b); + } + else if (programIndex % 3 == 1) { + RET[programIndex] = saturating_add(a_min, -b); + } + else { + RET[programIndex] = saturating_add(a_min, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (varying int8) 127; + if (programIndex % 3 == 0) { + RET[programIndex] = (varying int8) 127; + } + else if (programIndex % 3 == 1) { + RET[programIndex] = (varying int8) -128; + } + else { + RET[programIndex] = (varying int8) -123; + } } diff --git a/tests/paddus_i16.ispc b/tests/paddus_i16.ispc index e38f6db7..2032f161 100644 --- a/tests/paddus_i16.ispc +++ b/tests/paddus_i16.ispc @@ -2,10 +2,20 @@ export uniform int width() { return programCount; } export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { - uniform unsigned int16 a = 65535; // max unsigned int16 - RET[programIndex] = saturating_add(a, b); + uniform unsigned int16 a_max = 65535, a_min = 0; // max and min unsigned int16 + if (programIndex % 2 == 0) { + RET[programIndex] = saturating_add(a_max, b); + } + else { + RET[programIndex] = saturating_add(a_min, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (uniform unsigned int16) 65535; + if (programIndex % 2 == 0) { + RET[programIndex] = (uniform unsigned int16) 65535; + } + else { + RET[programIndex] = (uniform unsigned int16) 5; + } } diff --git a/tests/paddus_i8.ispc b/tests/paddus_i8.ispc index 7cd3ecf8..97436a86 100644 --- a/tests/paddus_i8.ispc +++ b/tests/paddus_i8.ispc @@ -2,10 +2,20 @@ export uniform int width() { return programCount; } export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { - uniform unsigned int8 a = 255; // max unsigned int8 - RET[programIndex] = saturating_add(a, b); + uniform unsigned int8 a_max = 255, a_min = 0; // max and min unsigned int8 + if (programIndex % 2 == 0) { + RET[programIndex] = saturating_add(a_max, b); + } + else { + RET[programIndex] = saturating_add(a_min, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (uniform unsigned int8) 255; + if (programIndex % 2 == 0) { + RET[programIndex] = (uniform unsigned int8) 255; + } + else { + RET[programIndex] = (uniform unsigned int8) 5; + } } diff --git a/tests/paddus_vi16.ispc b/tests/paddus_vi16.ispc index c4454cd2..d8bfa000 100644 --- a/tests/paddus_vi16.ispc +++ b/tests/paddus_vi16.ispc @@ -1,11 +1,21 @@ export uniform int width() { return programCount; } -export void f_f(uniform float RET[], uniform float aFOO[]) { - varying unsigned int16 a = 65535, b = aFOO[programIndex]; // max unsigned int16 - RET[programIndex] = saturating_add(a, b); +export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { + varying unsigned int16 a_max = 65535, a_min = 0; // max and min unsigned int16 + if (programIndex % 2 == 0) { + RET[programIndex] = saturating_add(a_max, b); + } + else { + RET[programIndex] = saturating_add(a_min, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (varying unsigned int16) 65535; + if (programIndex % 2 == 0) { + RET[programIndex] = (varying unsigned int16) 65535; + } + else { + RET[programIndex] = (varying unsigned int16) 5; + } } diff --git a/tests/paddus_vi8.ispc b/tests/paddus_vi8.ispc index b7b970ff..59baa6fb 100644 --- a/tests/paddus_vi8.ispc +++ b/tests/paddus_vi8.ispc @@ -1,11 +1,22 @@ export uniform int width() { return programCount; } -export void f_f(uniform float RET[], uniform float aFOO[]) { - varying unsigned int8 a = 255, b = aFOO[programIndex]; // max unsigned int8 - RET[programIndex] = saturating_add(a, b); +export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { + varying unsigned int8 a_max = 255, a_min = 0; // max and min signed int8 + if (programIndex % 2 == 0) { + RET[programIndex] = saturating_add(a_max, b); + } + else { + RET[programIndex] = saturating_add(a_min, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (varying unsigned int8) 255; + if (programIndex % 2 == 0) { + RET[programIndex] = (varying unsigned int8) 255; + } + else { + RET[programIndex] = (varying unsigned int8) 5; + } } + diff --git a/tests/psubs_i16-2.ispc b/tests/psubs_i16-2.ispc deleted file mode 100644 index ace62b1c..00000000 --- a/tests/psubs_i16-2.ispc +++ /dev/null @@ -1,11 +0,0 @@ - -export uniform int width() { return programCount; } - -export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { - uniform int16 a = 32767; // max signed int16 - RET[programIndex] = saturating_sub(a, -b); -} - -export void result(uniform float RET[]) { - RET[programIndex] = (uniform int16) 32767; -} diff --git a/tests/psubs_i16.ispc b/tests/psubs_i16.ispc index 47f3d2b9..4f27b3b4 100644 --- a/tests/psubs_i16.ispc +++ b/tests/psubs_i16.ispc @@ -2,10 +2,26 @@ export uniform int width() { return programCount; } export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { - uniform int16 a = -32768; // min signed int16 - RET[programIndex] = saturating_sub(a, b); + uniform int16 a_max = 32767, a_min = -32768; // max and min signed int16 + if (programIndex % 3 == 0) { + RET[programIndex] = saturating_sub(a_min, b); + } + else if (programIndex % 3 == 1) { + RET[programIndex] = saturating_sub(a_max, -b); + } + else { + RET[programIndex] = saturating_sub(a_max, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (uniform int16) -32768; + if (programIndex % 3 == 0) { + RET[programIndex] = (uniform int16) -32768; + } + else if (programIndex % 3 == 1) { + RET[programIndex] = (uniform int16) 32767; + } + else { + RET[programIndex] = (uniform int16) 32762; + } } diff --git a/tests/psubs_i8-2.ispc b/tests/psubs_i8-2.ispc deleted file mode 100644 index 6d3d608a..00000000 --- a/tests/psubs_i8-2.ispc +++ /dev/null @@ -1,11 +0,0 @@ - -export uniform int width() { return programCount; } - -export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { - uniform int8 a = 127; // max signed int8 - RET[programIndex] = saturating_sub(a, -b); -} - -export void result(uniform float RET[]) { - RET[programIndex] = (uniform int8) 127; -} diff --git a/tests/psubs_i8.ispc b/tests/psubs_i8.ispc index fbc24d25..e04867bd 100644 --- a/tests/psubs_i8.ispc +++ b/tests/psubs_i8.ispc @@ -2,10 +2,26 @@ export uniform int width() { return programCount; } export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { - uniform int8 a = -128; // min signed int8 - RET[programIndex] = saturating_sub(a, b); + uniform int8 a_max = 127, a_min = -128; // max and min signed int8 + if (programIndex % 3 == 0) { + RET[programIndex] = saturating_sub(a_min, b); + } + else if (programIndex % 3 == 1) { + RET[programIndex] = saturating_sub(a_max, -b); + } + else { + RET[programIndex] = saturating_sub(a_max, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (uniform int8) -128; + if (programIndex % 3 == 0) { + RET[programIndex] = (uniform int8) -128; + } + else if (programIndex % 3 == 1) { + RET[programIndex] = (uniform int8) 127; + } + else { + RET[programIndex] = (uniform int8) 122; + } } diff --git a/tests/psubs_vi16-2.ispc b/tests/psubs_vi16-2.ispc deleted file mode 100644 index ef1b2ef4..00000000 --- a/tests/psubs_vi16-2.ispc +++ /dev/null @@ -1,11 +0,0 @@ - -export uniform int width() { return programCount; } - -export void f_f(uniform float RET[], uniform float aFOO[]) { - varying int16 a = 32767, b = aFOO[programIndex]; // min unsigned int16 - RET[programIndex] = saturating_sub(a, -b); -} - -export void result(uniform float RET[]) { - RET[programIndex] = (varying int16) 32767; -} diff --git a/tests/psubs_vi16.ispc b/tests/psubs_vi16.ispc index e405a23f..df130115 100644 --- a/tests/psubs_vi16.ispc +++ b/tests/psubs_vi16.ispc @@ -1,11 +1,27 @@ export uniform int width() { return programCount; } -export void f_f(uniform float RET[], uniform float aFOO[]) { - varying int16 a = -32768, b = aFOO[programIndex]; // min unsigned int16 - RET[programIndex] = saturating_sub(a, b); +export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { + varying int16 a_max = 32767, a_min = -32768; // max and min signed int16 + if (programIndex % 3 == 0) { + RET[programIndex] = saturating_sub(a_min, b); + } + else if (programIndex % 3 == 1) { + RET[programIndex] = saturating_sub(a_max, -b); + } + else { + RET[programIndex] = saturating_sub(a_max, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (varying int16) -32768; + if (programIndex % 3 == 0) { + RET[programIndex] = (varying int16) -32768; + } + else if (programIndex % 3 == 1) { + RET[programIndex] = (varying int16) 32767; + } + else { + RET[programIndex] = (varying int16) 32762; + } } diff --git a/tests/psubs_vi8-2.ispc b/tests/psubs_vi8-2.ispc deleted file mode 100644 index b7fb02c6..00000000 --- a/tests/psubs_vi8-2.ispc +++ /dev/null @@ -1,11 +0,0 @@ - -export uniform int width() { return programCount; } - -export void f_f(uniform float RET[], uniform float aFOO[]) { - varying int8 a = 127, b = aFOO[programIndex]; // min unsigned int8 - RET[programIndex] = saturating_sub(a, -b); -} - -export void result(uniform float RET[]) { - RET[programIndex] = (varying int8) 127; -} diff --git a/tests/psubs_vi8.ispc b/tests/psubs_vi8.ispc index 7d852f0a..d7e9ff89 100644 --- a/tests/psubs_vi8.ispc +++ b/tests/psubs_vi8.ispc @@ -1,11 +1,27 @@ export uniform int width() { return programCount; } -export void f_f(uniform float RET[], uniform float aFOO[]) { - varying int8 a = -128, b = aFOO[programIndex]; // min unsigned int8 - RET[programIndex] = saturating_sub(a, b); +export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { + varying int8 a_max = 127, a_min = -128; // max and min signed int8 + if (programIndex % 3 == 0) { + RET[programIndex] = saturating_sub(a_min, b); + } + else if (programIndex % 3 == 1) { + RET[programIndex] = saturating_sub(a_max, -b); + } + else { + RET[programIndex] = saturating_sub(a_max, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (varying int8) -128; + if (programIndex % 3 == 0) { + RET[programIndex] = (varying int8) -128; + } + else if (programIndex % 3 == 1) { + RET[programIndex] = (varying int8) 127; + } + else { + RET[programIndex] = (varying int8) 122; + } } diff --git a/tests/psubus_i16.ispc b/tests/psubus_i16.ispc index a7f60603..f9ae3568 100644 --- a/tests/psubus_i16.ispc +++ b/tests/psubus_i16.ispc @@ -2,10 +2,20 @@ export uniform int width() { return programCount; } export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { - uniform unsigned int8 a = 0; // min unsigned int16 - RET[programIndex] = saturating_sub(a, b); + uniform unsigned int16 a_max = 65535, a_min = 0; // max and min unsigned int16 + if (programIndex % 2 == 0) { + RET[programIndex] = saturating_sub(a_min, b); + } + else { + RET[programIndex] = saturating_sub(a_max, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (uniform unsigned int8) 0; + if (programIndex % 2 == 0) { + RET[programIndex] = (uniform unsigned int16) 0; + } + else { + RET[programIndex] = (uniform unsigned int16) 65530; + } } diff --git a/tests/psubus_i8.ispc b/tests/psubus_i8.ispc index 7cb7ecdc..e6f30b2a 100644 --- a/tests/psubus_i8.ispc +++ b/tests/psubus_i8.ispc @@ -2,10 +2,20 @@ export uniform int width() { return programCount; } export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { - uniform unsigned int8 a = 0; // min unsigned int8 - RET[programIndex] = saturating_sub(a, b); + uniform unsigned int8 a_max = 255, a_min = 0; // max and min unsigned int8 + if (programIndex % 2 == 0) { + RET[programIndex] = saturating_sub(a_min, b); + } + else { + RET[programIndex] = saturating_sub(a_max, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (uniform unsigned int8) 0; + if (programIndex % 2 == 0) { + RET[programIndex] = (uniform unsigned int8) 0; + } + else { + RET[programIndex] = (uniform unsigned int8) 250; + } } diff --git a/tests/psubus_vi16.ispc b/tests/psubus_vi16.ispc index e441b699..0974cc5e 100644 --- a/tests/psubus_vi16.ispc +++ b/tests/psubus_vi16.ispc @@ -1,11 +1,21 @@ export uniform int width() { return programCount; } -export void f_f(uniform float RET[], uniform float aFOO[]) { - varying unsigned int16 a = 0, b = aFOO[programIndex]; // min unsigned int16 - RET[programIndex] = saturating_sub(a, b); +export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { + varying unsigned int16 a_max = 65535, a_min = 0; // max and min unsigned int16 + if (programIndex % 2 == 0) { + RET[programIndex] = saturating_sub(a_min, b); + } + else { + RET[programIndex] = saturating_sub(a_max, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (varying unsigned int16) 0; + if (programIndex % 2 == 0) { + RET[programIndex] = (varying unsigned int16) 0; + } + else { + RET[programIndex] = (varying unsigned int16) 65530; + } } diff --git a/tests/psubus_vi8.ispc b/tests/psubus_vi8.ispc index 7ba5f14a..f7ad65d3 100644 --- a/tests/psubus_vi8.ispc +++ b/tests/psubus_vi8.ispc @@ -1,11 +1,21 @@ export uniform int width() { return programCount; } -export void f_f(uniform float RET[], uniform float aFOO[]) { - varying unsigned int8 a = 0, b = aFOO[programIndex]; // min unsigned int8 - RET[programIndex] = saturating_sub(a, b); +export void f_fu(uniform float RET[], uniform float aFOO[], uniform float b) { + varying unsigned int8 a_max = 255, a_min = 0; // max and min signed int8 + if (programIndex % 2 == 0) { + RET[programIndex] = saturating_sub(a_min, b); + } + else { + RET[programIndex] = saturating_sub(a_max, b); + } } export void result(uniform float RET[]) { - RET[programIndex] = (varying unsigned int8) 0; + if (programIndex % 2 == 0) { + RET[programIndex] = (varying unsigned int8) 0; + } + else { + RET[programIndex] = (varying unsigned int8) 250; + } }