https://sourceware.org/bugzilla/show_bug.cgi?id=22871

Linus Torvalds <torva...@linux-foundation.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |torvalds@linux-foundation.o
                   |                            |rg

--- Comment #4 from Linus Torvalds <torva...@linux-foundation.org> ---
(In reply to H.J. Lu from comment #3)
> 
> We need to keep
> 
>       andq    imm31, mem

Yes.

> and optimize testq to
> 
>       testl   imm31, mem

This one isn't quite as obvious. There *may* be microarchitectures that could
have problems doing store buffer forwarding of a previous 64-bit write to a the
32-bit read of the "testl".

I _think_ all intel microarchitectures handle it fine for the "same address"
case, but I'm not 100% sure. I know I've seen a table of "these forwardings are
fast", but I don't recall where.

The intel optimization manual does specify the rules for various
microarchitectures, and they all _seem_ to state that a smaller load forwards
fine from a larger store at the same address. But I don't find any generic
statement that that is always true.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to