https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128597
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Small testcase:
__attribute__((noipa)) int
f (int x)
{
int t = x & 0xc7ff3906;
short s = t;
if (s != 0)
return 0;
if (t < 0)
return 0;
return 1;
}
int
main (void)
{
/* Bit 15 of x is not in the mask, so t == 0. */
if (f (0x8000) != 1)
__builtin_abort ();
return 0;
}
the original one was root-caused as an issue in if-combine called from PRE.
