/* { dg-do compile } */ typedef int uint32_t; int c, e, f, g, h; short *d; uint32_t fn1(uint32_t p1, uint32_t p2) { uint32_t a, b; a = p1 >> 3 & p2; b = p1 & 072; a |= a >> 5; a |= b >> 5; return a; } void fn2() { uint32_t *i; uint32_t j; while (c -= 4) { fn1(e, j); fn1(f, j) * fn1(g, j) * fn1(h, j); *d++ = fn1(*i++, j); *d++ = fn1(*i++, j); } }