diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/autopar/pr46969.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/autopar/pr46969.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/autopar/pr46969.c b/gcc/testsuite/gcc.dg/autopar/pr46969.c new file mode 100644 index 000000000..807ce4f92 --- /dev/null +++ b/gcc/testsuite/gcc.dg/autopar/pr46969.c @@ -0,0 +1,31 @@ +/* PR tree-optimization/46969 */ +/* { dg-do compile } */ +/* { dg-options "-O3 -ftree-parallelize-loops=2 -fcompare-debug" } */ + +extern void abort (void); +#define F(name) \ +int \ +name (unsigned char *x) \ +{ \ + int i; \ + unsigned int c, d, e; \ + if (x != 0) \ + { \ + for (i = 0, d = 0, e = 0xFFFFFFFF; \ + i < 64; \ + i += (int) sizeof(unsigned int)) \ + { \ + c = *((unsigned int *)(&x[i])); \ + d = d | c; \ + e = e & c; \ + } \ + if (!((d == e) && ((d >> 8) == (e & 0x00FFFFFF)))) \ + abort (); \ + } \ + return 0; \ +} +F (foo0) F (foo1) +F (foo2) F (foo3) +F (foo4) F (foo5) +F (foo6) F (foo7) +F (foo8) F (foo9) |