[X86] Add InstFixup for masked `unpck{l|h}pd` -> masked `shufpd`
authorNoah Goldstein <goldstein.w.n@gmail.com>
Thu, 6 Apr 2023 06:11:30 +0000 (01:11 -0500)
committerNoah Goldstein <goldstein.w.n@gmail.com>
Thu, 6 Apr 2023 06:36:42 +0000 (01:36 -0500)
commitfd347ceac490e28a1b1590e05ac6f9e570d4dc99
tree0fdad0552014783c7f620618967cbc6d1b5480cd
parent8c18b55e8835fb44e4d0712af8c6c9a85b515ed0
[X86] Add InstFixup for masked `unpck{l|h}pd` -> masked `shufpd`

This is a follow up D147507 which removed the prior transformation to
`shufps` which was incorrect as the mask was for 64-bit double
elements, not 32-bit float elements. Using `shufpd` for the
replacement, however, preserves the mask semantics and has the same
benefits as `shufps`.

Reviewed By: pengfei, RKSimon

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