https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91645
--- Comment #8 from Jeffrey A. Law <law at gcc dot gnu.org> --- First, there's magic bits which turn a standard sqrt call into something like if (exceptional condition) call libm's sqrt else use hardware sqrt The primary goal is to get errno set properly for those exceptional conditions. That code (tree-ssa-math-opts.cc?) can be updated to query the range to determine if the exceptional conditions can happen. Essentially that eliminates the need for -fno-math-errno. That may be enough for targets with real sqrt instructions. More work is likely needed for targets that use an estimator + correction steps.