diff options
author | Nick Clifton <nickc@redhat.com> | 2013-12-18 15:29:47 +0000 |
---|---|---|
committer | Nick Clifton <nickc@gcc.gnu.org> | 2013-12-18 15:29:47 +0000 |
commit | 69aeb34f52ac77c4704a08f91156de8ffd9d797b (patch) | |
tree | 2b1267bb08893ea76c8fe0363574694084123a02 /gcc | |
parent | 871a3886a0835e132775a7271420984f9727e6f4 (diff) | |
download | gcc-69aeb34f52ac77c4704a08f91156de8ffd9d797b.zip gcc-69aeb34f52ac77c4704a08f91156de8ffd9d797b.tar.gz gcc-69aeb34f52ac77c4704a08f91156de8ffd9d797b.tar.bz2 |
* gcc.dg/pr32912-2.c: Fix for 16-bit targets.
From-SVN: r206089
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr32912-2.c | 25 |
2 files changed, 20 insertions, 9 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f192b5d..730ce06 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2013-12-18 Nick Clifton <nickc@redhat.com> + + * gcc.dg/pr32912-2.c: Fix for 16-bit targets. + 2013-12-18 Eric Botcazou <ebotcazou@adacore.com> * gcc.dg/pr59418.c: New test. diff --git a/gcc/testsuite/gcc.dg/pr32912-2.c b/gcc/testsuite/gcc.dg/pr32912-2.c index f29e63e..2e80078 100644 --- a/gcc/testsuite/gcc.dg/pr32912-2.c +++ b/gcc/testsuite/gcc.dg/pr32912-2.c @@ -1,14 +1,24 @@ /* { dg-do run } */ /* { dg-options "-O2 -w" } */ -/* { dg-skip-if "TImode not supported" { "avr-*-*" } { "*" } { "" } } */ extern void abort (void); #if(__SIZEOF_INT__ >= 4) -typedef int __m128i __attribute__ ((__vector_size__ (16))); +# define TYPE int +# define TYPED(a) a + +#elif(__SIZEOF_INT__ > 2) +# define TYPE long +# define TYPED(a) a##L + #else -typedef long __m128i __attribute__ ((__vector_size__ (16))); +# define TYPE long long +# define TYPED(a) a##LL #endif + + +typedef TYPE __m128i __attribute__ ((__vector_size__ (16))); + __m128i foo (void) { @@ -26,11 +36,7 @@ bar (void) int main (void) { -#if(__SIZEOF_INT__ >= 4) - union { __m128i v; int i[sizeof (__m128i) / sizeof (int)]; } u, v; -#else - union { __m128i v; long i[sizeof (__m128i) / sizeof (long)]; } u, v; -#endif + union { __m128i v; TYPE i[sizeof (__m128i) / sizeof (TYPE)]; } u, v; int i; u.v = foo (); @@ -39,9 +45,10 @@ main (void) { if (u.i[i] != ~v.i[i]) abort (); + if (i < 3) { - if (u.i[i] != (0x11111111 << i)) + if (u.i[i] != (TYPED (0x11111111) << i)) abort (); } else if (u.i[i]) |