[Piglit] [PATCH] cl: Add tests for stored fneg

arsenm2 at gmail.com arsenm2 at gmail.com
Thu Jan 26 23:09:52 UTC 2017


From: Matt Arsenault <arsenm2 at gmail.com>

Make sure fneg that can't be folded into a use operand is
executed correctly.

v2: Merge with other test
v3: Remove other test
---
 .../cl/program/execute/scalar-arithmetic-double.cl | 36 +++++++++++++++++++
 .../cl/program/execute/scalar-arithmetic-float.cl  | 42 ++++++++++------------
 2 files changed, 55 insertions(+), 23 deletions(-)
 create mode 100644 tests/cl/program/execute/scalar-arithmetic-double.cl

diff --git a/tests/cl/program/execute/scalar-arithmetic-double.cl b/tests/cl/program/execute/scalar-arithmetic-double.cl
new file mode 100644
index 000000000..3c2cb6271
--- /dev/null
+++ b/tests/cl/program/execute/scalar-arithmetic-double.cl
@@ -0,0 +1,36 @@
+/*!
+[config]
+name: fneg f64
+clc_version_min: 10
+require_device_extensions: cl_khr_fp64
+dimensions: 1
+
+## Unary minus ##
+
+[test]
+name: minus
+kernel_name: minus
+global_size: 20 0 0
+
+arg_out: 0 buffer double[20]       \
+   -0.0      0.0    -0.5    0.5    \
+   -1.0      1.0    -2.0    2.0    \
+   -4.0      4.0   -10.0    10.0   \
+   -inf      inf     nan   -345.25 \
+ 345.25 -455.125  455.125  0.12345
+
+arg_in: 1 buffer double[20]          \
+  0.0     -0.0           0.5     -0.5 \
+  1.0     -1.0           2.0     -2.0 \
+  4.0     -4.0          10.0    -10.0 \
+  inf     -inf           nan   345.25 \
+ -345.25   455.125  -455.125 -0.12345
+
+!*/
+
+#pragma OPENCL EXTENSION cl_khr_fp64 : enable
+
+kernel void minus(global double* out, global double* in) {
+    int id = get_global_id(0);
+    out[id] = -in[id];
+}
diff --git a/tests/cl/program/execute/scalar-arithmetic-float.cl b/tests/cl/program/execute/scalar-arithmetic-float.cl
index 84c397030..3412e1b7b 100644
--- a/tests/cl/program/execute/scalar-arithmetic-float.cl
+++ b/tests/cl/program/execute/scalar-arithmetic-float.cl
@@ -293,28 +293,23 @@ arg_out: 0 buffer float[1] -inf
 ## Unary minus ##
 
 [test]
-name: -pos
+name: minus
 kernel_name: minus
-arg_in:  1 float 345.25
-arg_out: 0 buffer float[1] -345.25
-
-[test]
-name: -neg
-kernel_name: minus
-arg_in:  1 float -455.125
-arg_out: 0 buffer float[1] 455.125
-
-[test]
-name: -inf
-kernel_name: minus
-arg_in:  1 float inf
-arg_out: 0 buffer float[1] -inf
-
-[test]
-name: --inf
-kernel_name: minus
-arg_in:  1 float -inf
-arg_out: 0 buffer float[1] inf
+global_size: 20 0 0
+
+arg_out: 0 buffer float[20]        \
+   -0.0      0.0    -0.5    0.5    \
+   -1.0      1.0    -2.0    2.0    \
+   -4.0      4.0   -10.0    10.0   \
+   -inf      inf     nan   -345.25 \
+ 345.25 -455.125  455.125  0.12345
+
+arg_in: 1 buffer float[20]            \
+  0.0     -0.0           0.5     -0.5 \
+  1.0     -1.0           2.0     -2.0 \
+  4.0     -4.0          10.0    -10.0 \
+  inf     -inf           nan   345.25 \
+ -345.25   455.125  -455.125 -0.12345
 
 !*/
 
@@ -338,6 +333,7 @@ kernel void plus(global float* out, float in) {
 	out[0] = +in;
 }
 
-kernel void minus(global float* out, float in) {
-	out[0] = -in;
+kernel void minus(global float* out, global float* in) {
+    int id = get_global_id(0);
+    out[id] = -in[id];
 }
-- 
2.11.0



More information about the Piglit mailing list