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

arsenm2 at gmail.com arsenm2 at gmail.com
Fri Jan 20 19:40:22 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
---
 .../cl/program/execute/scalar-arithmetic-double.cl | 34 ++++++++++++++++++++++
 .../cl/program/execute/scalar-arithmetic-float.cl  | 30 +++++++++++++++++++
 2 files changed, 64 insertions(+)
 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..3b1f9e06e
--- /dev/null
+++ b/tests/cl/program/execute/scalar-arithmetic-double.cl
@@ -0,0 +1,34 @@
+/*!
+[config]
+name: fneg f64
+clc_version_min: 10
+require_device_extensions: cl_khr_fp64
+
+dimensions: 1
+global_size: 15 0 0
+
+[test]
+name: fneg
+kernel_name: fneg
+global_size: 15 0 0
+
+arg_out: 0 buffer double[15]   \
+  -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
+
+arg_in: 1 buffer double[15]   \
+  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
+!*/
+
+#pragma OPENCL EXTENSION cl_khr_fp64 : enable
+
+kernel void fneg(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..938b7d305 100644
--- a/tests/cl/program/execute/scalar-arithmetic-float.cl
+++ b/tests/cl/program/execute/scalar-arithmetic-float.cl
@@ -316,6 +316,30 @@ kernel_name: minus
 arg_in:  1 float -inf
 arg_out: 0 buffer float[1] inf
 
+[config]
+name: fneg f32
+clc_version_min: 10
+
+dimensions: 1
+global_size: 15 0 0
+
+[test]
+name: fneg
+kernel_name: fneg_f32
+global_size: 15 0 0
+
+arg_out: 0 buffer float[15]   \
+  -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
+
+arg_in: 1 buffer float[15]   \
+  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
+
 !*/
 
 kernel void add(global float* out, float a, float b) {
@@ -341,3 +365,9 @@ kernel void plus(global float* out, float in) {
 kernel void minus(global float* out, float in) {
 	out[0] = -in;
 }
+
+kernel void fneg_f32(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