Skip to content

Commit c58493c

Browse files
committed
[AMDGPU] SIPeepholeSDWA.cpp: Simplify combineSdwaSel uses
1 parent c3868a5 commit c58493c

File tree

1 file changed

+13
-25
lines changed

1 file changed

+13
-25
lines changed

llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -486,22 +486,12 @@ bool SDWASrcOperand::convertToSDWA(MachineInstr &MI, const SIInstrInfo *TII) {
486486
}
487487
copyRegOperand(*Src, *getTargetOperand());
488488
if (!IsPreserveSrc) {
489-
if (SrcSel->getImm() == AMDGPU::SDWA::DWORD) {
490-
// An SDWA instruction with a trivial src_sel, i.e.
491-
// it has either not been adjusted before or it has
492-
// just been created at the call site of this function.
493-
// Use the operand's src_sel.
494-
SrcSel->setImm(getSrcSel());
495-
}
496-
else {
497-
// A preexisting SDWA instruction with a non-trivial src_sel.
498-
// Combine with the operand src_sel.
499-
std::optional<SdwaSel> NewOp =
500-
combineSdwaSel((SdwaSel)SrcSel->getImm(), getSrcSel());
501-
if (!NewOp.has_value())
502-
return false;
503-
SrcSel->setImm(NewOp.value());
504-
}
489+
SdwaSel ExistingSel = static_cast<SdwaSel>(SrcSel->getImm());
490+
std::optional<SdwaSel> NewSel = combineSdwaSel(ExistingSel, getSrcSel());
491+
if (!NewSel.has_value())
492+
return false;
493+
SrcSel->setImm(NewSel.value());
494+
505495
SrcMods->setImm(getSrcMods(TII, Src));
506496
}
507497
getTargetOperand()->setIsKill(false);
@@ -548,15 +538,13 @@ bool SDWADstOperand::convertToSDWA(MachineInstr &MI, const SIInstrInfo *TII) {
548538
copyRegOperand(*Operand, *getTargetOperand());
549539
MachineOperand *DstSel= TII->getNamedOperand(MI, AMDGPU::OpName::dst_sel);
550540
assert(DstSel);
551-
if (DstSel->getImm() != AMDGPU::SDWA::DWORD) {
552-
std::optional<SdwaSel> NewOp =
553-
combineSdwaSel((SdwaSel)DstSel->getImm(), getDstSel());
554-
if (!NewOp.has_value())
555-
return false;
556-
DstSel->setImm(NewOp.value());
557-
} else {
558-
DstSel->setImm(getDstSel());
559-
}
541+
542+
SdwaSel ExistingSel = static_cast<SdwaSel>(DstSel->getImm());
543+
std::optional<SdwaSel> NewSel = combineSdwaSel(ExistingSel, getDstSel());
544+
if (!NewSel.has_value())
545+
return false;
546+
DstSel->setImm(NewSel.value());
547+
560548
MachineOperand *DstUnused= TII->getNamedOperand(MI, AMDGPU::OpName::dst_unused);
561549
assert(DstUnused);
562550
DstUnused->setImm(getDstUnused());

0 commit comments

Comments
 (0)