https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91970
--- Comment #4 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- The libgcc2.c functions for conversions that get used by default on most architectures should respect the rounding mode if the underlying single-word-to-floating-point instruction does so. (They have more complicated logic to handle the __floatdisf case and other such cases where a single word is wider than the precision of the floating-point type.) The libgcc2.c __fix* functions may raise spurious "inexact" exceptions, but that's a different matter.