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?