[llvm] f1036d8 - [X86] X86InstrInfo::commuteInstructionImpl - remove (V)BLENDPD/S commutation to (V)MOVSD/S optsize handling (#144051)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 13 04:49:25 PDT 2025
Author: Simon Pilgrim
Date: 2025-06-13T12:49:22+01:00
New Revision: f1036d844e4b886ac702859ccf8a19cf2153c7f7
URL: https://github.com/llvm/llvm-project/commit/f1036d844e4b886ac702859ccf8a19cf2153c7f7
DIFF: https://github.com/llvm/llvm-project/commit/f1036d844e4b886ac702859ccf8a19cf2153c7f7.diff
LOG: [X86] X86InstrInfo::commuteInstructionImpl - remove (V)BLENDPD/S commutation to (V)MOVSD/S optsize handling (#144051)
Just commute with (V)BLENDPD/S like all other BLEND instructions
This is now handled more generally by the X86FixupInstTuningPass (OptSize fold occurs even without a scheduler model).
First step towards #142972
Added:
Modified:
llvm/lib/Target/X86/X86InstrInfo.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/X86InstrInfo.cpp b/llvm/lib/Target/X86/X86InstrInfo.cpp
index 212e134c512a7..abf365eedec39 100644
--- a/llvm/lib/Target/X86/X86InstrInfo.cpp
+++ b/llvm/lib/Target/X86/X86InstrInfo.cpp
@@ -2353,33 +2353,9 @@ MachineInstr *X86InstrInfo::commuteInstructionImpl(MachineInstr &MI, bool NewMI,
break;
case X86::BLENDPDrri:
case X86::BLENDPSrri:
+ case X86::PBLENDWrri:
case X86::VBLENDPDrri:
case X86::VBLENDPSrri:
- // If we're optimizing for size, try to use MOVSD/MOVSS.
- if (MI.getParent()->getParent()->getFunction().hasOptSize()) {
- unsigned Mask = (Opc == X86::BLENDPDrri || Opc == X86::VBLENDPDrri) ? 0x03: 0x0F;
- if ((MI.getOperand(3).getImm() ^ Mask) == 1) {
-#define FROM_TO(FROM, TO) \
- case X86::FROM: \
- Opc = X86::TO; \
- break;
- switch (Opc) {
- default:
- llvm_unreachable("Unreachable!");
- FROM_TO(BLENDPDrri, MOVSDrr)
- FROM_TO(BLENDPSrri, MOVSSrr)
- FROM_TO(VBLENDPDrri, VMOVSDrr)
- FROM_TO(VBLENDPSrri, VMOVSSrr)
- }
- WorkingMI = CloneIfNew(MI);
- WorkingMI->setDesc(get(Opc));
- WorkingMI->removeOperand(3);
- break;
- }
-#undef FROM_TO
- }
- [[fallthrough]];
- case X86::PBLENDWrri:
case X86::VBLENDPDYrri:
case X86::VBLENDPSYrri:
case X86::VPBLENDDrri:
More information about the llvm-commits
mailing list