]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
vector-defs.h: Use vector_size attribute only for GCC 3.5+...
authorJakub Jelinek <jakub@redhat.com>
Tue, 29 Jun 2004 19:31:55 +0000 (21:31 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 29 Jun 2004 19:31:55 +0000 (21:31 +0200)
* gcc.dg/compat/vector-defs.h: Use vector_size attribute
only for GCC 3.5+, for GCC up to 3.4 mode(V*) attribute instead.

From-SVN: r83873

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/compat/vector-defs.h

index 1239de739fb80168f8deecf22b6526afaeac051d..f02a5bbd83d5b416aa003cc6263627d2daa9faee 100644 (file)
@@ -1,5 +1,8 @@
 2004-06-29  Jakub Jelinek  <jakub@redhat.com>
 
+       * gcc.dg/compat/vector-defs.h: Use vector_size attribute
+       only for GCC 3.5+, for GCC up to 3.4 mode(V*) attribute instead.
+
        PR target/16195
        * gcc.dg/20040625-1.c: New test.
 
index ecb39603c73343c3a770a0d4d5adf341a3c87228..57140f115cd02596aec770613570324b0a72b525 100644 (file)
@@ -1,46 +1,72 @@
 /* This includes all of the vector modes that are recognized by
-   c_common_type_for_mode, grouped by base mode.  */
+   c_common_type_for_mode.  */
 
 typedef int __attribute__((mode(QI))) qi;
+typedef int __attribute__((mode(HI))) hi;
+typedef int __attribute__((mode(SI))) si;
+typedef int __attribute__((mode(DI))) di;
+typedef float __attribute__((mode(SF))) sf;
+typedef float __attribute__((mode(DF))) df;
+
+#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 5)
+
 typedef qi __attribute__((vector_size (8))) v8qi;
 typedef qi __attribute__((vector_size (16))) v16qi;
 
-typedef union U8QI { v8qi v; qi a[8]; } u8qi;
-typedef union U16QI { v16qi v; qi a[16]; } u16qi;
-
-typedef int __attribute__((mode(HI))) hi;
 typedef hi __attribute__((vector_size (4))) v2hi;
 typedef hi __attribute__((vector_size (8))) v4hi;
 typedef hi __attribute__((vector_size (16))) v8hi;
 
-typedef union U2HI { v2hi v; hi a[2]; } u2hi;
-typedef union U4HI { v4hi v; hi a[4]; } u4hi;
-typedef union U8HI { v8hi v; hi a[8]; } u8hi;
-
-typedef int __attribute__((mode(SI))) si;
 typedef si __attribute__((vector_size (8))) v2si;
 typedef si __attribute__((vector_size (16))) v4si;
 
-typedef union U2SI { v2si v; si a[2]; } u2si;
-typedef union U4SI { v4si v; si a[4]; } u4si;
-
-typedef int __attribute__((mode(DI))) di;
 typedef di __attribute__((vector_size (8))) v1di;
 typedef di __attribute__((vector_size (16))) v2di;
 
-typedef union U1DI { v1di v; di a[1]; } u1di;
-typedef union U2DI { v2di v; di a[2]; } u2di;
-
-typedef float __attribute__((mode(SF))) sf;
 typedef sf __attribute__((vector_size (8))) v2sf;
 typedef sf __attribute__((vector_size (16))) v4sf;
 typedef sf __attribute__((vector_size (64))) v16sf;
 
+typedef df __attribute__((vector_size (16))) v2df;
+
+#else
+
+typedef int __attribute__((mode(V8QI))) v8qi;
+typedef int __attribute__((mode(V16QI))) v16qi;
+
+typedef int __attribute__((mode(V2HI))) v2hi;
+typedef int __attribute__((mode(V4HI))) v4hi;
+typedef int __attribute__((mode(V8HI))) v8hi;
+
+typedef int __attribute__((mode(V2SI))) v2si;
+typedef int __attribute__((mode(V4SI))) v4si;
+
+typedef int __attribute__((mode(V1DI))) v1di;
+typedef int __attribute__((mode(V2DI))) v2di;
+
+typedef float __attribute__((mode(V2SF))) v2sf;
+typedef float __attribute__((mode(V4SF))) v4sf;
+typedef float __attribute__((mode(V16SF))) v16sf;
+
+typedef float __attribute__((mode(V2DF))) v2df;
+
+#endif
+
+typedef union U8QI { v8qi v; qi a[8]; } u8qi;
+typedef union U16QI { v16qi v; qi a[16]; } u16qi;
+
+typedef union U2HI { v2hi v; hi a[2]; } u2hi;
+typedef union U4HI { v4hi v; hi a[4]; } u4hi;
+typedef union U8HI { v8hi v; hi a[8]; } u8hi;
+
+typedef union U2SI { v2si v; si a[2]; } u2si;
+typedef union U4SI { v4si v; si a[4]; } u4si;
+
+typedef union U1DI { v1di v; di a[1]; } u1di;
+typedef union U2DI { v2di v; di a[2]; } u2di;
+
 typedef union U2SF { v2sf v; sf a[2]; } u2sf;
 typedef union U4SF { v4sf v; sf a[4]; } u4sf;
 typedef union U16SF { v16sf v; sf a[16]; } u16sf;
 
-typedef float __attribute__((mode(DF))) df;
-typedef df __attribute__((vector_size (16))) v2df;
-
 typedef union U2DF { v2df v; df a[2]; } u2df;