Lines Matching defs:And
208 Elt = ConstantFoldBinaryOpOperands(Instruction::And, Elt, AndCst, DL);
1480 Value *And = Builder.CreateAnd(X, Mask);
1482 return new ICmpInst(Pred, And, WideC);
1680 BinaryOperator *And,
1683 BinaryOperator *Shift = dyn_cast<BinaryOperator>(And->getOperand(0));
1740 Shift->getOperand(0), ConstantInt::get(And->getType(), NewAndCst));
1742 NewAnd, ConstantInt::get(And->getType(), NewCmpCst));
1754 IsShl ? Builder.CreateLShr(And->getOperand(1), Shift->getOperand(1))
1755 : Builder.CreateShl(And->getOperand(1), Shift->getOperand(1));
1767 BinaryOperator *And,
1775 match(And->getOperand(1), m_One()))
1776 return new TruncInst(And->getOperand(0), Cmp.getType());
1780 if (!match(And, m_And(m_Value(X), m_APInt(C2))))
1795 if (!And->hasOneUse())
1808 KnownBits Know = computeKnownBits(And->getOperand(0), 0, And);
1816 Constant *NegBOC = ConstantInt::get(And->getType(), -NewC2);
1831 if (match(And->getOperand(0), m_OneUse(m_Trunc(m_Value(W)))) &&
1841 Value *NewAnd = Builder.CreateAnd(W, ZextC2, And->getName());
1846 if (Instruction *I = foldICmpAndShift(Cmp, And, C1, *C2))
1853 if (!Cmp.isSigned() && C1.isZero() && And->getOperand(0)->hasOneUse() &&
1854 match(And->getOperand(1), m_One())) {
1855 Constant *One = cast<Constant>(And->getOperand(1));
1856 Value *Or = And->getOperand(0);
1861 if (And->hasOneUse())
1875 Value *NewAnd = Builder.CreateAnd(A, NewOr, And->getName());
1908 BinaryOperator *And,
1910 if (Instruction *I = foldICmpAndConstConst(Cmp, And, C))
1919 if (match(And->getOperand(0), m_Add(m_Value(X), m_AllOnes())) &&
1920 match(And->getOperand(1), m_Not(m_Specific(X)))) {
1926 if (match(And, m_c_And(m_Neg(m_Value(X)), m_Deferred(X)))) {
1938 Value *X = And->getOperand(0);
1939 Value *Y = And->getOperand(1);
1969 if (C.isZero() && (Pred == CmpInst::ICMP_EQ || And->hasOneUse())) {
1988 if (match(And, m_OneUse(m_c_And(m_OneUse(m_ZExt(m_Value(X))), m_Value(Y)))) &&
1992 Value *And = Builder.CreateAnd(TruncY, X);
1993 return BinaryOperator::CreateNot(And);
2003 match(And, m_OneUse(m_c_And(m_OneUse(m_Shl(m_AllOnes(), m_Value(X))),
2014 if (match(And, m_And(m_OneUse(m_Add(m_Value(A), m_APInt(Addend))),
2075 auto BOpc = Pred == CmpInst::ICMP_EQ ? Instruction::And : Instruction::Or;
2126 Value *And = Builder.CreateAnd(OrOp0, ~(*MaskC));
2128 return new ICmpInst(Pred, And, NewC);
2178 auto BOpc = Pred == CmpInst::ICMP_EQ ? Instruction::And : Instruction::Or;
2431 Value *And = Builder.CreateAnd(X, Mask, Shl->getName() + ".mask");
2433 return new ICmpInst(Pred, And, LShrC);
2443 Value *And = Builder.CreateAnd(X, Mask, Shl->getName() + ".mask");
2445 And, Constant::getNullValue(ShType));
2453 Value *And = Builder.CreateAnd(X, (~C).lshr(ShiftAmt->getZExtValue()));
2456 And, Constant::getNullValue(ShType));
2461 Value *And =
2465 And, Constant::getNullValue(ShType));
2667 Value *And = Builder.CreateAnd(X, Mask, Shr->getName() + ".mask");
2668 return new ICmpInst(Pred, And, ConstantInt::get(ShrTy, C << ShAmtVal));
2738 Value *And = Builder.CreateAnd(SRem->getOperand(0), MaskC);
2741 return new ICmpInst(Pred, And, ConstantInt::get(Ty, C));
2747 return new ICmpInst(ICmpInst::ICMP_SGT, And, ConstantInt::getNullValue(Ty));
2752 return new ICmpInst(ICmpInst::ICMP_UGT, And, ConstantInt::get(Ty, SignMask));
2810 auto Logic = Pred == ICmpInst::ICMP_EQ ? Instruction::And : Instruction::Or;
3319 // And kind-of perform the result swap.
3643 Value *And = Builder.CreateAnd(BOp0, NotBOC);
3644 return new ICmpInst(Pred, And, NotBOC);
3666 Pred == ICmpInst::ICMP_EQ ? Instruction::And : Instruction::Or, Cmp,
3689 Pred == ICmpInst::ICMP_EQ ? Instruction::And : Instruction::Or, Cmp,
3755 Value *And = Builder.CreateAnd(
3761 And, Constant::getNullValue(Op->getType()));
3963 case Instruction::And:
4074 SatValCheck ? Instruction::BinaryOps::Or : Instruction::BinaryOps::And;
4079 else /* CombiningOp == Instruction::BinaryOps::And */
4380 case Instruction::And:
4937 Value *And = Builder.CreateAnd(X, MaxSignedVal);
4939 return CmpInst::Create(Instruction::ICmp, Pred, And, Zero);
5873 Value *And = Builder.CreateAnd(Xor, ConstantExpr::getNot(C));
5874 return new ICmpInst(Pred, And, Constant::getNullValue(And->getType()));
5917 Value *And = Builder.CreateAnd(Xor, Builder.getInt(AndVal),
5919 return new ICmpInst(Pred, And, Constant::getNullValue(Cst1->getType()));
6042 Value *And = Builder.CreateAnd(Res->X, Res->Mask);
6044 return new ICmpInst(Res->Pred, And, C);
6398 if (BO->getOpcode() != Instruction::And)
6471 assert(BO->getOpcode() == Instruction::And);
6887 Pred1 == ICmpInst::ICMP_EQ ? Instruction::Or : Instruction::And,
6979 // And, adapt users.
7450 // and CodeGen. And in this case, at least one of the comparison
8369 // and CodeGen. And in this case, at least one of the comparison