/* 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)