http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21718
--- Comment #25 from Joseph S. Myers <jsm28 at gcc dot gnu.org> --- Rounding to zero and setting a sticky bit based on inexactness works as long as the internal precision has at least two more bits than the final precision for which correctly rounded results are required. (This is what Boldo and Melquiond call rounding to odd in their fma algorithm, but the basic idea is much older than that.)