[X86] Add inst fixup for `unpckps` -> `unpckdq`.
authorNoah Goldstein <goldstein.w.n@gmail.com>
Mon, 10 Apr 2023 00:23:30 +0000 (19:23 -0500)
committerNoah Goldstein <goldstein.w.n@gmail.com>
Mon, 10 Apr 2023 05:17:00 +0000 (00:17 -0500)
commitd65720652dd644483530ecb547365a2239a97979
tree118cbae61352a3a39c2991e90ae32c047a6bbef7
parentc3f01f13b10d708b9b7ff45a6ccc2f0c3462b3af
[X86] Add inst fixup for `unpckps` -> `unpckdq`.

`unpckps` has the same performance as `unpckpd` (only port5) wereas
`unpckdq` can run on p15 on some newer architectures.

`unpckdq` is in the integer domain, so only do the transform if the
target has no bypass delay on shuffles (SKL+).

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D147729
llvm/lib/Target/X86/X86FixupInstTuning.cpp
llvm/test/CodeGen/X86/tuning-shuffle-unpckps-avx512.ll
llvm/test/CodeGen/X86/tuning-shuffle-unpckps.ll