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

Alexander Monakov <amonakov at gcc dot gnu.org> changed:

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

--- Comment #3 from Alexander Monakov <amonakov at gcc dot gnu.org> ---
In addition to Agner Fog's manuals, the instlatx64 resource provide plenty of
latency/throughput data: http://users.atw.hu/instlatx64/

The benchmark in comment 0 measures throughput (including call/return overhead
which seems a bit strange), latency-wise movabs should be preferable.

So I think this indicates that a "real fix" should try to evaluate if a 64-bit
immediate move starts a critical-ish dependency chain, if yes, then we should
be trying to reduce latency and should prefer movabs, if not, we may prefer the
mov+shl combo that trades latency for overall throughput (i.e. assuming the
additional latency can be hidden by compiler scheduling and CPU reordering).

Reply via email to