[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