aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@gcc.gnu.org>2001-12-07 18:52:06 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2001-12-07 18:52:06 +0000
commita73073aa6ef0c5f14115ed7227c40ec6f24f18e7 (patch)
tree6f860e18dc5b77a9f4c6b689af8060dc84698962 /gcc
parent1b9191d275f3b600bfb63339cfa291bcceb0edbb (diff)
downloadgcc-a73073aa6ef0c5f14115ed7227c40ec6f24f18e7.zip
gcc-a73073aa6ef0c5f14115ed7227c40ec6f24f18e7.tar.gz
gcc-a73073aa6ef0c5f14115ed7227c40ec6f24f18e7.tar.bz2
new
From-SVN: r47765
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.dg/altivec-2.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/altivec-2.c b/gcc/testsuite/gcc.dg/altivec-2.c
new file mode 100644
index 0000000..596a414
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/altivec-2.c
@@ -0,0 +1,38 @@
+/* { dg-do compile { target powerpc-*-* } } */
+/* { dg-options "-maltivec" } */
+
+/* Program to test the vector_size attribute. This needs to run on a
+ target that has vectors, so use AltiVec. */
+
+#define vector __attribute__((vector_size(16)))
+
+vector int foobar;
+
+/* Only floats and integrals allowed. We don't care if they map to SIs. */
+struct X { int frances; };
+vector struct X hotdog; /* { dg-bogus "invalid vector type" "case 1" } */
+
+/* We don't have a V2DF. */
+vector double x; /* { dg-bogus "no vector mode" "case 2" } */
+
+/* Arrays of vectors. */
+vector char b[10], ouch;
+
+/* Pointers of vectors. */
+vector short *shoe, polish;
+
+int xxx[sizeof(foobar) == 16 ? 69 : -1];
+
+int nc17[sizeof(shoe) == sizeof (char *) ? 69 : -1];
+
+code ()
+{
+ *shoe = polish;
+ b[1] = ouch;
+}
+
+vector short
+hoop ()
+{
+ return polish;
+}