This is the mail archive of the
mailing list for the glibc project.
Re: [PATCH] Fix ldbl-128ibm fma (Inf, Inf, finite) (bug 23272)
- From: Florian Weimer <fweimer at redhat dot com>
- To: Joseph Myers <joseph at codesourcery dot com>
- Cc: Tulio Magno Quites Machado Filho <tuliom at linux dot ibm dot com>, <libc-alpha at sourceware dot org>
- Date: Fri, 21 Sep 2018 13:59:55 +0200
- Subject: Re: [PATCH] Fix ldbl-128ibm fma (Inf, Inf, finite) (bug 23272)
- References: <firstname.lastname@example.org> <alpine.DEB.email@example.com>
* Joseph Myers:
> On Wed, 13 Jun 2018, Tulio Magno Quites Machado Filho wrote:
>> This solution is mainly based on Joseph's fix at commit
>> It has extra differences because:
>> - part of the non-finite arguments were already being treated;
>> - when x and y are +-Inf and z if finite, an overflow can be
> I'm not clear what the observed issues you are fixing are. Is this patch
> to avoid running into libgcc generating spurious overflows for the case
> you mention, or is it intended to fix wrong results?
>> + if (!isfinite (x) && !isfinite (y) && isfinite(z))
>> + /* Compute the result as x * y to avoid an overflow. */
>> + return x * y;
> Why wouldn't this be needed if just one of x and y is not finite? If x *
> y + z generates a spurious overflow in some cases where x * y is infinite,
> I'd expect that to apply equally to the case where the infinity comes from
> (Inf * finite), not just from (Inf * Inf).
We still see a failures (see bug 23272). How can we move this forward?