diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/i386/20020531-1.c')
-rw-r--r-- | gcc/testsuite/gcc.target/i386/20020531-1.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/i386/20020531-1.c b/gcc/testsuite/gcc.target/i386/20020531-1.c new file mode 100644 index 000000000..cd7cac347 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/20020531-1.c @@ -0,0 +1,21 @@ +/* PR optimization/6842 + This testcase caused ICE when trying to optimize V8QI subreg of VOIDmode + CONST_DOUBLE. */ +/* { dg-do compile } */ +/* { dg-options "-O2 -mmmx" } */ + +typedef char __v8qi __attribute__ ((vector_size (8))); +extern void abort (void); +extern void exit (int); + +void foo (void) +{ + unsigned long long a = 0x0102030405060708LL; + unsigned long long b = 0x1020304050607080LL; + unsigned long long c; + + c = (unsigned long long) __builtin_ia32_paddusb ((__v8qi) a, (__v8qi) b); + __builtin_ia32_emms (); + if (c != 0x1122334455667788LL) + abort (); +} |