Lines Matching refs:And
1559 Value *And = Builder.CreateAnd(X, Mask); in foldICmpTruncConstant() local
1561 return new ICmpInst(Pred, And, WideC); in foldICmpTruncConstant()
1665 BinaryOperator *And, in foldICmpAndShift() argument
1668 BinaryOperator *Shift = dyn_cast<BinaryOperator>(And->getOperand(0)); in foldICmpAndShift()
1725 Shift->getOperand(0), ConstantInt::get(And->getType(), NewAndCst)); in foldICmpAndShift()
1727 NewAnd, ConstantInt::get(And->getType(), NewCmpCst)); in foldICmpAndShift()
1738 IsShl ? Builder.CreateLShr(And->getOperand(1), Shift->getOperand(1)) in foldICmpAndShift()
1739 : Builder.CreateShl(And->getOperand(1), Shift->getOperand(1)); in foldICmpAndShift()
1751 BinaryOperator *And, in foldICmpAndConstConst() argument
1759 match(And->getOperand(1), m_One())) in foldICmpAndConstConst()
1760 return new TruncInst(And->getOperand(0), Cmp.getType()); in foldICmpAndConstConst()
1764 if (!match(And, m_And(m_Value(X), m_APInt(C2)))) in foldICmpAndConstConst()
1768 if (!And->hasOneUse()) in foldICmpAndConstConst()
1781 KnownBits Know = computeKnownBits(And->getOperand(0), 0, And); in foldICmpAndConstConst()
1789 Constant *NegBOC = ConstantInt::get(And->getType(), -NewC2); in foldICmpAndConstConst()
1804 if (match(And->getOperand(0), m_OneUse(m_Trunc(m_Value(W)))) && in foldICmpAndConstConst()
1814 Value *NewAnd = Builder.CreateAnd(W, ZextC2, And->getName()); in foldICmpAndConstConst()
1819 if (Instruction *I = foldICmpAndShift(Cmp, And, C1, *C2)) in foldICmpAndConstConst()
1826 if (!Cmp.isSigned() && C1.isZero() && And->getOperand(0)->hasOneUse() && in foldICmpAndConstConst()
1827 match(And->getOperand(1), m_One())) { in foldICmpAndConstConst()
1828 Constant *One = cast<Constant>(And->getOperand(1)); in foldICmpAndConstConst()
1829 Value *Or = And->getOperand(0); in foldICmpAndConstConst()
1834 if (And->hasOneUse()) in foldICmpAndConstConst()
1853 Value *NewAnd = Builder.CreateAnd(A, NewOr, And->getName()); in foldICmpAndConstConst()
1864 BinaryOperator *And, in foldICmpAndConstant() argument
1866 if (Instruction *I = foldICmpAndConstConst(Cmp, And, C)) in foldICmpAndConstant()
1875 if (match(And->getOperand(0), m_Add(m_Value(X), m_AllOnes())) && in foldICmpAndConstant()
1876 match(And->getOperand(1), m_Not(m_Specific(X)))) { in foldICmpAndConstant()
1885 Value *X = And->getOperand(0); in foldICmpAndConstant()
1886 Value *Y = And->getOperand(1); in foldICmpAndConstant()
1939 Value *And = Builder.CreateAnd(OrOp0, ~(*MaskC)); in foldICmpOrConstant() local
1941 return new ICmpInst(Pred, And, NewC); in foldICmpOrConstant()
1967 auto BOpc = Pred == CmpInst::ICMP_EQ ? Instruction::And : Instruction::Or; in foldICmpOrConstant()
1980 auto BOpc = Pred == CmpInst::ICMP_EQ ? Instruction::And : Instruction::Or; in foldICmpOrConstant()
2201 Value *And = Builder.CreateAnd(X, Mask, Shl->getName() + ".mask"); in foldICmpShlConstant() local
2203 return new ICmpInst(Pred, And, LShrC); in foldICmpShlConstant()
2213 Value *And = Builder.CreateAnd(X, Mask, Shl->getName() + ".mask"); in foldICmpShlConstant() local
2215 And, Constant::getNullValue(ShType)); in foldICmpShlConstant()
2223 Value *And = Builder.CreateAnd(X, (~C).lshr(ShiftAmt->getZExtValue())); in foldICmpShlConstant() local
2226 And, Constant::getNullValue(ShType)); in foldICmpShlConstant()
2231 Value *And = in foldICmpShlConstant() local
2235 And, Constant::getNullValue(ShType)); in foldICmpShlConstant()
2408 Value *And = Builder.CreateAnd(X, Mask, Shr->getName() + ".mask"); in foldICmpShrConstant() local
2409 return new ICmpInst(Pred, And, ConstantInt::get(ShrTy, C << ShAmtVal)); in foldICmpShrConstant()
2448 Value *And = Builder.CreateAnd(SRem->getOperand(0), MaskC); in foldICmpSRemConstant() local
2451 return new ICmpInst(Pred, And, ConstantInt::get(Ty, C)); in foldICmpSRemConstant()
2457 return new ICmpInst(ICmpInst::ICMP_SGT, And, ConstantInt::getNullValue(Ty)); in foldICmpSRemConstant()
2462 return new ICmpInst(ICmpInst::ICMP_UGT, And, ConstantInt::get(Ty, SignMask)); in foldICmpSRemConstant()
2520 auto Logic = Pred == ICmpInst::ICMP_EQ ? Instruction::And : Instruction::Or; in foldICmpDivConstant()
3213 Value *And = Builder.CreateAnd(BOp0, NotBOC); in foldICmpBinOpEqualityWithConstant() local
3214 return new ICmpInst(Pred, And, NotBOC); in foldICmpBinOpEqualityWithConstant()
3218 case Instruction::And: { in foldICmpBinOpEqualityWithConstant()
3406 case Instruction::And: in foldICmpBinOpWithConstant()
4670 Value *And = Builder.CreateAnd(Xor, ConstantExpr::getNot(C)); in foldICmpEquality() local
4671 return new ICmpInst(Pred, And, Constant::getNullValue(And->getType())); in foldICmpEquality()
4716 Value *And = Builder.CreateAnd(Xor, Builder.getInt(AndVal), in foldICmpEquality() local
4718 return new ICmpInst(Pred, And, Constant::getNullValue(Cst1->getType())); in foldICmpEquality()
4809 Value *And = Builder.CreateAnd(X, Mask); in foldICmpWithTrunc() local
4811 return new ICmpInst(Pred, And, Zero); in foldICmpWithTrunc()
4819 Value *And = Builder.CreateAnd(X, MaskC); in foldICmpWithTrunc() local
4820 return new ICmpInst(ICmpInst::ICMP_NE, And, MaskC); in foldICmpWithTrunc()
4827 Value *And = Builder.CreateAnd(X, MaskC); in foldICmpWithTrunc() local
4828 return new ICmpInst(ICmpInst::ICMP_EQ, And, MaskC); in foldICmpWithTrunc()
5143 if (BO->getOpcode() != Instruction::And) in processUMulZExtIdiom()
5260 assert(BO->getOpcode() == Instruction::And); in processUMulZExtIdiom()