Signed-off-by: Jan Vesely <jan.ves...@rutgers.edu>
---

This used to trigger failure when LLVM put different types in different .rodata 
sections. Now there are no .rodata sections for radeon, but I think we should 
still test it.

Jan

 tests/cl/program/execute/program-scope-arrays.cl | 102 ++++++++++++++++++++++-
 1 file changed, 98 insertions(+), 4 deletions(-)

diff --git a/tests/cl/program/execute/program-scope-arrays.cl 
b/tests/cl/program/execute/program-scope-arrays.cl
index b9a962c..a930da9 100644
--- a/tests/cl/program/execute/program-scope-arrays.cl
+++ b/tests/cl/program/execute/program-scope-arrays.cl
@@ -6,6 +6,28 @@ global_size: 4 0 0
 
 
 [test]
+name: simple-constant-char
+kernel_name: simple_constant_char
+arg_out: 0 buffer char[4] 3 3 3 3
+
+[test]
+name: given-constant-char
+kernel_name: given_constant_char
+arg_in: 1 int 2
+arg_out: 0 buffer char[4] 2 2 2 2
+
+[test]
+name: simple-gid-char
+kernel_name: simple_gid_char
+arg_out: 0 buffer char[4] 4 3 2 1
+
+[test]
+name: indirection-char
+kernel_name: indirection_char
+arg_in: 1 buffer uchar[4] 3 2 1 0
+arg_out: 0 buffer char[4] 1 2 3 4
+
+[test]
 name: simple-constant
 kernel_name: simple_constant
 arg_out: 0 buffer float[4] 3.0 3.0 3.0 3.0
@@ -13,8 +35,8 @@ arg_out: 0 buffer float[4] 3.0 3.0 3.0 3.0
 [test]
 name: given-constant
 kernel_name: given_constant
-arg_in: 1 int 1
-arg_out: 0 buffer float[4] 3.0 3.0 3.0 3.0
+arg_in: 1 int 2
+arg_out: 0 buffer float[4] 2.0 2.0 2.0 2.0
 
 [test]
 name: simple-gid
@@ -24,8 +46,31 @@ arg_out: 0 buffer float[4] 4.0 3.0 2.0 1.0
 [test]
 name: indirection
 kernel_name: indirection
-arg_in: 1 buffer uchar[4] 0 1 2 3
-arg_out: 0 buffer float[4] 4.0 3.0 2.0 1.0
+arg_in: 1 buffer uchar[4] 3 2 1 0
+arg_out: 0 buffer float[4] 1.0 2.0 3.0 4.0
+
+
+[test]
+name: simple-constant-2
+kernel_name: simple_constant_2
+arg_out: 0 buffer float[8] 3.0 5.0 3.0 5.0 3.0 5.0 3.0 5.0
+
+[test]
+name: given-constant-2
+kernel_name: given_constant_2
+arg_in: 1 int 2
+arg_out: 0 buffer float[8] 2.0 5.0 2.0 5.0 2.0 5.0 2.0 5.0
+
+[test]
+name: simple-gid-2
+kernel_name: simple_gid_2
+arg_out: 0 buffer float[8] 4.0 5.0 3.0 5.0 2.0 5.0 1.0 5.0
+
+[test]
+name: indirection-2
+kernel_name: indirection_2
+arg_in: 1 buffer uchar[4] 3 2 1 0
+arg_out: 0 buffer float[8] 1.0 5.0 2.0 5.0 3.0 5.0 4.0 5.0
 
 !*/
 
@@ -55,3 +100,52 @@ __kernel void indirection(__global float *out, __global 
uchar *in) {
        int i = get_global_id(0);
        out[i] = arr[in[i]];
 }
+
+__constant char arrc[] = { 4, 3, 2, 1, };
+
+__kernel void simple_constant_char(__global char *out) {
+       int i = get_global_id(0);
+       out[i] = arrc[1];
+}
+
+__kernel void given_constant_char(__global char *out, int c) {
+       int i = get_global_id(0);
+       out[i] = arrc[c];
+}
+
+__kernel void simple_gid_char(__global char *out) {
+       int i = get_global_id(0);
+       out[i] = arrc[i];
+}
+
+__kernel void indirection_char(__global char *out, __global uchar *in) {
+       int i = get_global_id(0);
+       out[i] = arrc[in[i]];
+}
+
+__constant float2 arr2[] = {
+{4.0f, 5.0f},
+{3.0f, 5.0f},
+{2.0f, 5.0f},
+{1.0f, 5.0f}
+};
+
+__kernel void simple_constant_2(__global float2 *out) {
+       int i = get_global_id(0);
+       out[i] = arr2[1];
+}
+
+__kernel void given_constant_2(__global float2 *out, int c) {
+       int i = get_global_id(0);
+       out[i] = arr2[c];
+}
+
+__kernel void simple_gid_2(__global float2 *out) {
+       int i = get_global_id(0);
+       out[i] = arr2[i];
+}
+
+__kernel void indirection_2(__global float2 *out, __global uchar *in) {
+       int i = get_global_id(0);
+       out[i] = arr2[in[i]];
+}
-- 
2.5.0

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to