[Bug target/88152] optimize SSE & AVX char compares with subsequent movmskb

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Nov 28 15:23:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88152

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Matthias Kretz from comment #2)
> I just realized, the movmsk(x<0) => movmsk(x) transformation also applies to
> float and double if -ffinite-math-only (i.e. no NaN, it's alright for inf)
> and -fno-signed-zeros are active.

See PR54700, I'm not really sure if you can do it for floating point at all,
-fno-signed-zeros isn't a guarantee the operand will not be -0.0 and having x <
0.0 behave differently based on whether x is -0.0 or 0.0 (with
-fno-signed-zeros quite randomly) is IMHO very bad.


More information about the Gcc-bugs mailing list