[PATCH] Fix ldbl-128ibm fma (Inf, Inf, finite) (bug 23272)

Florian Weimer fweimer@redhat.com
Fri Sep 21 12:00:00 GMT 2018


* Joseph Myers:

> On Wed, 13 Jun 2018, Tulio Magno Quites Machado Filho wrote:
>
>> This solution is mainly based on Joseph's fix at commit
>> ca121b117f2c9c97a4c121334481a96c94fef3a0.
>> 
>> 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
>>    generated.
>
> 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?

Thanks,
Florian



More information about the Libc-alpha mailing list