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.

Reply via email to