From a2ba039c27a03faa1f7250de0a92a39cd8dbe71d Mon Sep 17 00:00:00 2001 From: Aaron Watry Date: Tue, 27 Nov 2012 21:49:25 -0600 Subject: cl: Add a CL test for kernel names which match iso646.h definitions. Tests that the following C++ keywords which are also defined in iso646.h are usable as valid kernel names: and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq All tests currently pass on MacOS 10.7, but at least some of them fail on Nvidia Linux. Reviewed-by: Tom Stellard --- tests/cl/program/execute/reserved-words.cl | 123 +++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 tests/cl/program/execute/reserved-words.cl (limited to 'tests/cl/program/execute') diff --git a/tests/cl/program/execute/reserved-words.cl b/tests/cl/program/execute/reserved-words.cl new file mode 100644 index 00000000..a2555064 --- /dev/null +++ b/tests/cl/program/execute/reserved-words.cl @@ -0,0 +1,123 @@ +/*! + +# OpenCL has declared all C99 keywords as reserved words. +# At least one CL run-time incorrectly treats ISO646 Alternative Operator +# Spellings defined in iso646.h as reserved (these are also C++ keywords). + +[config] +name: Reserved Words + +dimensions: 1 +global_size: 1 0 0 + +[test] +name: and +kernel_name: and +arg_in: 1 int 1 +arg_out: 0 buffer int[1] 1 + +[test] +name: and_eq +kernel_name: and_eq +arg_in: 1 int 1 +arg_out: 0 buffer int[1] 2 + +[test] +name: bitand +kernel_name: bitand +arg_in: 1 int 1 +arg_out: 0 buffer int[1] 3 + +[test] +name: bitor +kernel_name: bitor +arg_in: 1 int 1 +arg_out: 0 buffer int[1] 4 + +[test] +name: compl +kernel_name: compl +arg_in: 1 int 1 +arg_out: 0 buffer int[1] 5 + +[test] +name: not +kernel_name: not +arg_in: 1 int 1 +arg_out: 0 buffer int[1] 6 + +[test] +name: not_eq +kernel_name: not_eq +arg_in: 1 int 1 +arg_out: 0 buffer int[1] 7 + +[test] +name: or +kernel_name: or +arg_in: 1 int 1 +arg_out: 0 buffer int[1] 8 + +[test] +name: or_eq +kernel_name: or_eq +arg_in: 1 int 1 +arg_out: 0 buffer int[1] 9 + +[test] +name: xor +kernel_name: xor +arg_in: 1 int 1 +arg_out: 0 buffer int[1] 10 + +[test] +name: xor_eq +kernel_name: xor_eq +arg_in: 1 int 1 +arg_out: 0 buffer int[1] 11 + +!*/ + +kernel void and(global int* out, int in){ + out[0] = in * 1; +} + +kernel void and_eq(global int* out, int in){ + out[0] = in * 2; +} + +kernel void bitand(global int* out, int in){ + out[0] = in * 3; +} + +kernel void bitor(global int* out, int in){ + out[0] = in * 4; +} + +kernel void compl(global int* out, int in){ + out[0] = in * 5; +} + +kernel void not(global int* out, int in){ + out[0] = in * 6; +} + +kernel void not_eq(global int* out, int in){ + out[0] = in * 7; +} + +kernel void or(global int* out, int in){ + out[0] = in * 8; +} + +kernel void or_eq(global int* out, int in){ + out[0] = in * 9; +} + +kernel void xor(global int* out, int in){ + out[0] = in * 10; +} + +kernel void xor_eq(global int* out, int in){ + out[0] = in * 11; +} -- cgit v1.2.3