summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-07 18:52:06 +0000
committeraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2001-12-07 18:52:06 +0000
commit0880ac18e1bbc3e4b799fbfa6fcc56b8ae1dbbcf (patch)
tree6f860e18dc5b77a9f4c6b689af8060dc84698962
parentae4718dbfb69dcaef41a74acac2be59dff35f97a (diff)
downloadppe42-gcc-0880ac18e1bbc3e4b799fbfa6fcc56b8ae1dbbcf.tar.gz
ppe42-gcc-0880ac18e1bbc3e4b799fbfa6fcc56b8ae1dbbcf.zip
new
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47765 138bc75d-0d04-0410-961f-82ee72b054a4
-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 00000000000..596a4148052
--- /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;
+}
OpenPOWER on IntegriCloud