/* PR rtl-optimization/78477 */ unsigned a; unsigned short b; unsigned foo (unsigned x) { b = x; a >>= (b & 1); b = 1 | (b << 5); b >>= 15; x = (unsigned char) b > ((2 - (unsigned char) b) & 1); b = 0; return x; } int main () { if (__CHAR_BIT__ != 8 || sizeof (short) != 2 || sizeof (int) < 4) return 0; unsigned x = foo (12345); if (x != 0) __builtin_abort (); return 0; }