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.

Reply via email to