https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114270
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |enhancement --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- The rules for this to be done are a bit more complex than what is described here. 1) Significand precision of the floating point type needs to be >= precision of the integer type 2) the 1/(multiplier) needs to be representable in the integer type 3) (I think this is required) no trapping math is enabled as inexact floating point exception could happen 4) (maybe?) Significand only has the implicit 1 set. Note there might be more rules on needed for this to be done and I have not thought about all of them currently.