diff options
| author | nickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-12-18 15:29:47 +0000 |
|---|---|---|
| committer | nickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-12-18 15:29:47 +0000 |
| commit | f8c4f1f87f9b9e6876a42e196f1b47a4feff6e26 (patch) | |
| tree | 2b1267bb08893ea76c8fe0363574694084123a02 | |
| parent | e3b4a69679448b237b79654c78afaac7663ff46f (diff) | |
| download | ppe42-gcc-f8c4f1f87f9b9e6876a42e196f1b47a4feff6e26.tar.gz ppe42-gcc-f8c4f1f87f9b9e6876a42e196f1b47a4feff6e26.zip | |
* gcc.dg/pr32912-2.c: Fix for 16-bit targets.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206089 138bc75d-0d04-0410-961f-82ee72b054a4
| -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 f192b5d3526..730ce06a24b 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 f29e63e7058..2e800784d52 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]) |

