@@ -3674,49 +3674,6 @@ Instruction *InstCombinerImpl::visitOr(BinaryOperator &I) {
3674
3674
foldAddLikeCommutative (I.getOperand (1 ), I.getOperand (0 ),
3675
3675
/* NSW=*/ true , /* NUW=*/ true ))
3676
3676
return R;
3677
-
3678
- Value *Cond0 = nullptr , *Cond1 = nullptr ;
3679
- const APInt *Op0Eq = nullptr , *Op0Ne = nullptr ;
3680
- const APInt *Op1Eq = nullptr , *Op1Ne = nullptr ;
3681
-
3682
- // (!(A & N) ? 0 : N * C) + (!(A & M) ? 0 : M * C) -> A & (N + M) * C
3683
- if (match (I.getOperand (0 ),
3684
- m_Select (m_Value (Cond0), m_APInt (Op0Eq), m_APInt (Op0Ne))) &&
3685
- match (I.getOperand (1 ),
3686
- m_Select (m_Value (Cond1), m_APInt (Op1Eq), m_APInt (Op1Ne)))) {
3687
-
3688
- auto LHSDecompose =
3689
- decomposeBitTest (Cond0, /* LookThruTrunc=*/ true ,
3690
- /* AllowNonZeroC=*/ false , /* DecomposeAnd=*/ true );
3691
- auto RHSDecompose =
3692
- decomposeBitTest (Cond1, /* LookThruTrunc=*/ true ,
3693
- /* AllowNonZeroC=*/ false , /* DecomposeAnd=*/ true );
3694
-
3695
- if (LHSDecompose && RHSDecompose && LHSDecompose->X == RHSDecompose->X &&
3696
- RHSDecompose->Mask .isPowerOf2 () && LHSDecompose->Mask .isPowerOf2 () &&
3697
- LHSDecompose->Mask != RHSDecompose->Mask ) {
3698
- assert (ICmpInst::isEquality (LHSDecompose->Pred ));
3699
- if (LHSDecompose->Pred == ICmpInst::ICMP_NE)
3700
- std::swap (Op0Eq, Op0Ne);
3701
- if (RHSDecompose->Pred == ICmpInst::ICMP_NE)
3702
- std::swap (Op1Eq, Op1Ne);
3703
-
3704
- if (!Op0Ne->isZero () && !Op1Ne->isZero () && Op0Eq->isZero () &&
3705
- Op1Eq->isZero () && Op0Ne->urem (LHSDecompose->Mask ).isZero () &&
3706
- Op1Ne->urem (RHSDecompose->Mask ).isZero () &&
3707
- Op0Ne->udiv (LHSDecompose->Mask ) ==
3708
- Op1Ne->udiv (RHSDecompose->Mask )) {
3709
- auto NewAnd = Builder.CreateAnd (
3710
- LHSDecompose->X ,
3711
- ConstantInt::get (LHSDecompose->X ->getType (),
3712
- (LHSDecompose->Mask + RHSDecompose->Mask )));
3713
-
3714
- return BinaryOperator::CreateMul (
3715
- NewAnd, ConstantInt::get (NewAnd->getType (),
3716
- Op0Ne->udiv (LHSDecompose->Mask )));
3717
- }
3718
- }
3719
- }
3720
3677
}
3721
3678
3722
3679
Value *X, *Y;
0 commit comments