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

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
                 CC|                            |amacleod at redhat dot com
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2022-10-18

--- Comment #3 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
We are failing while trying to fold:

c_92 = __builtin_copysignf128 (0.0, c_80(D));

The problem is that c_92 is TFtype but 0.0 is _Float128.  TFtype has a
precision of 127 whereas _Float128 has a precision of 128.  This causes the
assert in fold_using_range::fold_stmt to fail because range_compatible_p is
false.

Are both operands of copysign allowed to have different types / precisions?

Reply via email to