https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126547

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|16.2                        |13.5
   Last reconfirmed|                            |2026-07-31
            Summary|[16/17 Regression] Wrong    |[13/14/15/16/17 Regression]
                   |code with ranger and FP     |Wrong code with ranger and
                   |division and infinities     |FP division and infinities
                   |since r16-1191              |since r13-4492
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
So, e.g. changing the testcase to (still -O2):
__attribute__((noipa)) static int
f (long double a1, long double a2)
{
  if (a1 >= 1.0 && a1 <= 8.0) {
  long double d = a1 / a2;
  int n = 0;
  if (d >= __builtin_infl ())
    n += 1;
  if (a2 > 0.0L)
    n += 2;
  return n;
  } else
    return -1;
}

int
main (void)
{
  int r = f (1.0, __LDBL_DENORM_MIN__);   /* 1.0L / 6.5e-4966L == +Inf */
  __builtin_printf ("%d\n", r);
  if (r != 3)
    __builtin_abort ();
  return 0;
}
started with r13-4492-g4500baaccb6e4d696e223c338bbdf7705c3646dd

Reply via email to