[X86][Atom] Fix integer shuffles uops, latency and throughput
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 17 Sep 2021 10:51:46 +0000 (11:51 +0100)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 17 Sep 2021 11:11:54 +0000 (12:11 +0100)
commit5ebe95e256737506f152395b5a3eb66cf448e969
tree378e681c8e57795fe47a2ecc8402ca587bc91238
parentcbaaedea56fade69bf12164155734efece0f8931
[X86][Atom] Fix integer shuffles uops, latency and throughput

The MMX pack/unpck shuffles don't need an override - they have the same behaviour as other shuffles (Port0 only).
The SSE pslldq/psrldq shuffles don't need an override - they have the same behaviour as other shuffles (Port0 only).
The SSE pshufb shuffles use 4uops (+1 load).

Noticed the pslldq/psrldq issue while trying to improve reduction costs via the D103695 helper script, and fixed the others while reviewing. Confirmed with Intel AoM / Agner / InstLatX64.
llvm/lib/Target/X86/X86ScheduleAtom.td
llvm/test/tools/llvm-mca/X86/Atom/resources-mmx.s
llvm/test/tools/llvm-mca/X86/Atom/resources-sse2.s
llvm/test/tools/llvm-mca/X86/Atom/resources-ssse3.s