diff options
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp')
-rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp b/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp index 7f605be..d934638 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp @@ -1355,9 +1355,9 @@ Instruction *InstCombinerImpl:: // right-shift of X and a "select". Value *X, *Select; Instruction *LowBitsToSkip, *Extract; - if (!match(&I, m_c_BinOp(m_TruncOrSelf(m_CombineAnd( - m_LShr(m_Value(X), m_Instruction(LowBitsToSkip)), - m_Instruction(Extract))), + if (!match(&I, m_c_BinOp(m_TruncOrSelf(m_Instruction( + Extract, m_LShr(m_Value(X), + m_Instruction(LowBitsToSkip)))), m_Value(Select)))) return nullptr; @@ -1763,13 +1763,12 @@ Instruction *InstCombinerImpl::visitAdd(BinaryOperator &I) { Constant *C; // (add X, (sext/zext (icmp eq X, C))) // -> (select (icmp eq X, C), (add C, (sext/zext 1)), X) - auto CondMatcher = m_CombineAnd( - m_Value(Cond), - m_SpecificICmp(ICmpInst::ICMP_EQ, m_Deferred(A), m_ImmConstant(C))); + auto CondMatcher = + m_Value(Cond, m_SpecificICmp(ICmpInst::ICMP_EQ, m_Deferred(A), + m_ImmConstant(C))); if (match(&I, - m_c_Add(m_Value(A), - m_CombineAnd(m_Value(Ext), m_ZExtOrSExt(CondMatcher)))) && + m_c_Add(m_Value(A), m_Value(Ext, m_ZExtOrSExt(CondMatcher)))) && Ext->hasOneUse()) { Value *Add = isa<ZExtInst>(Ext) ? InstCombiner::AddOne(C) : InstCombiner::SubOne(C); |