aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/ext/apple-altivec-5.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/ext/apple-altivec-5.C')
-rw-r--r--gcc/testsuite/g++.dg/ext/apple-altivec-5.C31
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/ext/apple-altivec-5.C b/gcc/testsuite/g++.dg/ext/apple-altivec-5.C
new file mode 100644
index 00000000000..4473881dda7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/apple-altivec-5.C
@@ -0,0 +1,31 @@
+/* APPLE LOCAL file AltiVec */
+/* Test for handling of reference vector parameters. */
+/* { dg-do compile { target powerpc*-*-darwin* } } */
+/* { dg-options "-faltivec" } */
+
+struct Vect
+{
+ typedef vector unsigned int vector_1;
+
+ static vector_1 ConvertPixel1(const vector_1 &source, const vector unsigned char &vp);
+ static vector_1 ConvertPixel2(const vector_1 source, const vector unsigned char vp);
+ static vector_1 ConvertPixel3(vector_1 &source, vector unsigned char &vp);
+ static vector_1 ConvertPixel4(vector_1 source, vector unsigned char vp);
+};
+
+Vect::vector_1 Vect::ConvertPixel1(const vector_1 &source, const vector unsigned char &vp)
+{
+ return (vector_1) vec_perm(source, source, vp);
+}
+Vect::vector_1 Vect::ConvertPixel2(const vector_1 source, const vector unsigned char vp)
+{
+ return (vector_1) vec_perm(source, source, vp);
+}
+Vect::vector_1 Vect::ConvertPixel3(vector_1 &source, vector unsigned char &vp)
+{
+ return (vector_1) vec_perm(source, source, vp);
+}
+Vect::vector_1 Vect::ConvertPixel4(vector_1 source, vector unsigned char vp)
+{
+ return (vector_1) vec_perm(source, source, vp);
+}