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

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

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

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The pxor is in there for performance reasons:
;; Break partial SSE register dependency stall.  This splitter should split
;; late in the pass sequence (after register rename pass), so allocated
;; registers won't change anymore
So sure, at -Os it is not present, because it makes the code larger (but
faster).

I also don't understand why you think the 8-bit to 32-bit sign extension is
unnecessary, the x86_64 ABI says that the upper bits have unspecified values.
It is true that LLVM ignores that part of ABI and makes its own incompatible
one and so doesn't add that, but it is wrong.

Reply via email to