Skip to content

Commit e1f5da5

Browse files
committed
fixup! Apply m_DeferredReg
1 parent 1bcb381 commit e1f5da5

File tree

1 file changed

+6
-11
lines changed

1 file changed

+6
-11
lines changed

llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7071,20 +7071,15 @@ bool CombinerHelper::matchSimplifyNegMinMax(MachineInstr &MI,
70717071
if (!isLegal({TargetOpcode::G_SUB, {DestTy}}))
70727072
return false;
70737073

7074-
// GISel doesn't have m_Deferred at this moment, so we have to
7075-
// match this pattern in two phases.
7076-
Register X, Y;
7074+
Register X;
70777075
Register Sub0;
7076+
auto NegPattern = m_all_of(m_Neg(m_DeferredReg(X)), m_Reg(Sub0));
70787077
if (mi_match(DestReg, MRI,
7079-
m_Neg(m_OneUse(m_any_of(
7080-
m_GSMin(m_Reg(X), m_Reg(Y)), m_GSMax(m_Reg(X), m_Reg(Y)),
7081-
m_BinOp(TargetOpcode::G_UMIN, m_Reg(X), m_Reg(Y)),
7082-
m_BinOp(TargetOpcode::G_UMAX, m_Reg(X), m_Reg(Y)))))) &&
7083-
(mi_match(Y, MRI, m_all_of(m_Neg(m_SpecificReg(X)), m_Reg(Sub0))) ||
7084-
mi_match(X, MRI, m_all_of(m_Neg(m_SpecificReg(Y)), m_Reg(Sub0))))) {
7078+
m_Neg(m_OneUse(m_any_of(m_GSMin(m_Reg(X), NegPattern),
7079+
m_GSMax(m_Reg(X), NegPattern),
7080+
m_GUMin(m_Reg(X), NegPattern),
7081+
m_GUMax(m_Reg(X), NegPattern)))))) {
70857082
MachineInstr *MinMaxMI = MRI.getVRegDef(MI.getOperand(2).getReg());
7086-
MachineInstr *Sub0MI = MRI.getVRegDef(Sub0);
7087-
X = Sub0MI->getOperand(2).getReg();
70887083
unsigned NewOpc = getInverseGMinMaxOpcode(MinMaxMI->getOpcode());
70897084
if (isLegal({NewOpc, {DestTy}})) {
70907085
MatchInfo = [=](MachineIRBuilder &B) {

0 commit comments

Comments
 (0)