summaryrefslogtreecommitdiffstats
path: root/test/CodeGenOpenCL
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGenOpenCL')
-rw-r--r--test/CodeGenOpenCL/2011-04-15-vec-init-from-vec.cl7
-rw-r--r--test/CodeGenOpenCL/vector_literals_valid.cl22
2 files changed, 25 insertions, 4 deletions
diff --git a/test/CodeGenOpenCL/2011-04-15-vec-init-from-vec.cl b/test/CodeGenOpenCL/2011-04-15-vec-init-from-vec.cl
index c61be69..fbe3d89 100644
--- a/test/CodeGenOpenCL/2011-04-15-vec-init-from-vec.cl
+++ b/test/CodeGenOpenCL/2011-04-15-vec-init-from-vec.cl
@@ -1,12 +1,11 @@
// RUN: %clang_cc1 %s -emit-llvm -o %t
typedef __attribute__((ext_vector_type(4))) unsigned char uchar4;
-typedef __attribute__((ext_vector_type(4))) unsigned int int4;
typedef __attribute__((ext_vector_type(8))) unsigned char uchar8;
// OpenCL allows vectors to be initialized by vectors Handle bug in
// VisitInitListExpr for this case below.
-void foo( int4 v )
+void foo( uchar8 x )
{
- uchar4 val[4] = {{(uchar4){((uchar8)(v.lo)).lo}}};
-} \ No newline at end of file
+ uchar4 val[4] = {{(uchar4){x.lo}}};
+}
diff --git a/test/CodeGenOpenCL/vector_literals_valid.cl b/test/CodeGenOpenCL/vector_literals_valid.cl
new file mode 100644
index 0000000..bba5b23
--- /dev/null
+++ b/test/CodeGenOpenCL/vector_literals_valid.cl
@@ -0,0 +1,22 @@
+// RUN: %clang_cc1 -emit-llvm %s -o %t
+
+typedef __attribute__(( ext_vector_type(2) )) int int2;
+typedef __attribute__(( ext_vector_type(3) )) int int3;
+typedef __attribute__(( ext_vector_type(4) )) int int4;
+typedef __attribute__(( ext_vector_type(8) )) int int8;
+typedef __attribute__(( ext_vector_type(4) )) float float4;
+
+void vector_literals_valid() {
+ int4 a_1_1_1_1 = (int4)(1,2,3,4);
+ int4 a_2_1_1 = (int4)((int2)(1,2),3,4);
+ int4 a_1_2_1 = (int4)(1,(int2)(2,3),4);
+ int4 a_1_1_2 = (int4)(1,2,(int2)(3,4));
+ int4 a_2_2 = (int4)((int2)(1,2),(int2)(3,4));
+ int4 a_3_1 = (int4)((int3)(1,2,3),4);
+ int4 a_1_3 = (int4)(1,(int3)(2,3,4));
+ int4 a = (int4)(1);
+ int8 b = (int8)(1,2,a.xy,a);
+ float4 V2 = (float4) (1);
+}
+
+
OpenPOWER on IntegriCloud