https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86160
--- Comment #3 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to jos...@codesourcery.com from comment #2) > Generic (for some floating-point formats, and maybe not for 128-bit > formats on 32-bit targets) bit-pattern is* were implemented by Tamar > Christina's patches that had to be reverted as they broke some powerpc > configurations. See bug 66462 Yup. > when versions based on integer arithmetic > are available they should be used in place of ones based on floating-point > arithmetic for -fsignaling-nans, regardless of which is more efficient on > a given processor, since is* aren't meant to raise "invalid" for signaling > NaN arguments but all comparisons do. Target-specific ways (like with x[sv]tdc[sdq]p) work fine on SNaNs as well, and can be much more efficient. We cannot detect if a NaN is signaling with these insns, but we can see it is a NaN, without raising an "invalid" flag.