[llvm] AMDGPU: Minor SDWA pass cleanups (PR #166629)
Frederik Harwath via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 6 01:56:47 PST 2025
================
@@ -1334,20 +1334,21 @@ void SIPeepholeSDWA::legalizeScalarOperands(MachineInstr &MI,
const MCInstrDesc &Desc = TII->get(MI.getOpcode());
unsigned ConstantBusCount = 0;
for (MachineOperand &Op : MI.explicit_uses()) {
- if (!Op.isImm() && !(Op.isReg() && !TRI->isVGPR(*MRI, Op.getReg())))
- continue;
-
- unsigned I = Op.getOperandNo();
+ if (Op.isReg()) {
+ if (TRI->isVGPR(*MRI, Op.getReg()))
+ continue;
- int16_t RegClass = TII->getOpRegClassID(Desc.operands()[I]);
- if (RegClass == -1 || !TRI->isVSSuperClass(TRI->getRegClass(RegClass)))
+ if (ST.hasSDWAScalar() && ConstantBusCount == 0) {
+ ++ConstantBusCount;
+ continue;
+ }
+ } else if (!Op.isImm())
continue;
- if (ST.hasSDWAScalar() && ConstantBusCount == 0 && Op.isReg() &&
- TRI->isSGPRReg(*MRI, Op.getReg())) {
----------------
frederik-h wrote:
Checking `TRI->isSGPRReg(*MRI, Op.getReg())` is not necessary because the `if (TRI->isVGPR(*MRI, Op.getReg()) continue;` in the new code implies it here, right?
https://github.com/llvm/llvm-project/pull/166629
More information about the llvm-commits
mailing list