@@ -2300,14 +2300,14 @@ Value *InstCombinerImpl::foldOrOfICmps(ICmpInst *LHS, ICmpInst *RHS,
2300
2300
LHS->getType ()->isIntOrIntVectorTy () && match (LHS1, m_APInt (LHSVal)) &&
2301
2301
match (RHS1, m_APInt (RHSVal)) && *LHSVal == *RHSVal && LHS->hasOneUse () &&
2302
2302
RHS->hasOneUse ()) {
2303
- Value *LAddOpnd, *RAddOpnd ;
2303
+ Value *AddOpnd ;
2304
2304
const APInt *LAddVal, *RAddVal;
2305
- if (match (LHS0, m_Add (m_Value (LAddOpnd ), m_APInt (LAddVal))) &&
2306
- match (RHS0, m_Add (m_Value (RAddOpnd ), m_APInt (RAddVal))) &&
2305
+ if (match (LHS0, m_Add (m_Value (AddOpnd ), m_APInt (LAddVal))) &&
2306
+ match (RHS0, m_Add (m_Specific (AddOpnd ), m_APInt (RAddVal))) &&
2307
2307
LAddVal->ugt (*LHSVal) && RAddVal->ugt (*LHSVal)) {
2308
2308
2309
2309
APInt DiffC = *LAddVal ^ *RAddVal;
2310
- if (LAddOpnd == RAddOpnd && DiffC.isPowerOf2 ()) {
2310
+ if (DiffC.isPowerOf2 ()) {
2311
2311
const APInt *MaxAddC = nullptr ;
2312
2312
if (LAddVal->ult (*RAddVal))
2313
2313
MaxAddC = RAddVal;
@@ -2326,7 +2326,7 @@ Value *InstCombinerImpl::foldOrOfICmps(ICmpInst *LHS, ICmpInst *RHS,
2326
2326
if (LowRangeDiff.isPowerOf2 () && LowRangeDiff == HighRangeDiff &&
2327
2327
RangeDiff.ugt (*LHSVal)) {
2328
2328
Value *NewAnd = Builder.CreateAnd (
2329
- LAddOpnd , ConstantInt::get (LHS0->getType (), ~DiffC));
2329
+ AddOpnd , ConstantInt::get (LHS0->getType (), ~DiffC));
2330
2330
Value *NewAdd = Builder.CreateAdd (
2331
2331
NewAnd, ConstantInt::get (LHS0->getType (), *MaxAddC));
2332
2332
return Builder.CreateICmp (LHS->getPredicate (), NewAdd,
0 commit comments