From 69aeb34f52ac77c4704a08f91156de8ffd9d797b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 18 Dec 2013 15:29:47 +0000 Subject: [PATCH] * gcc.dg/pr32912-2.c: Fix for 16-bit targets. From-SVN: r206089 --- gcc/testsuite/ChangeLog | 4 ++++ 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 f192b5d35268..730ce06a24b3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2013-12-18 Nick Clifton + + * gcc.dg/pr32912-2.c: Fix for 16-bit targets. + 2013-12-18 Eric Botcazou * 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 f29e63e70581..2e800784d52e 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]) -- 2.47.3