https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88173
--- Comment #4 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- An ordered comparison (< <= > >=) with qNaN raises the "invalid" exception. An equality comparison (== !=) does not, and nor do __builtin_isless etc. I don't know how C++ constexpr rules relate to floating-point exceptions.