https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111709
--- Comment #8 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- Typically these sorts of issues result from floating-point operations being moved past environment manipulation (fesetround, feupdateenv, feholdexcept, etc.) - in either direction. This might be a compiler issue, or it might well be a bug in the glibc function implementation (insufficient use of math_opt_barrier / math_force_eval to prevent such movement). If the latter, make sure to fix it in all similar implementations of fma functions, not just the dbl-64 one.