/* PR rtl-optimization/81019 */ /* { dg-do run } */ /* { dg-options "-O -fno-tree-ccp" } */ unsigned long long __attribute__((noinline, noclone)) foo (unsigned char a, unsigned short b, unsigned c, unsigned long long d, unsigned char e, unsigned short f, unsigned g, unsigned long long h) { g = e; c &= 0 < d; b *= d; g ^= -1; g &= 1; c |= 1; a -= 0 < g; g >>= 1; f = b | (f >> b); return a + c + d + f + g + h; } int main (void) { if (foo (0, 0, 0, 0, 0, 0, 0, 0) != 0x100) __builtin_abort (); return 0; }