Lines Matching refs:And

209       Elt = ConstantFoldBinaryOpOperands(Instruction::And, Elt, AndCst, DL);  in foldCmpLoadFromIndexedGlobal()
1458 Value *And = Builder.CreateAnd(X, Mask); in foldICmpTruncConstant() local
1460 return new ICmpInst(Pred, And, WideC); in foldICmpTruncConstant()
1658 BinaryOperator *And, in foldICmpAndShift() argument
1661 BinaryOperator *Shift = dyn_cast<BinaryOperator>(And->getOperand(0)); in foldICmpAndShift()
1718 Shift->getOperand(0), ConstantInt::get(And->getType(), NewAndCst)); in foldICmpAndShift()
1720 NewAnd, ConstantInt::get(And->getType(), NewCmpCst)); in foldICmpAndShift()
1731 IsShl ? Builder.CreateLShr(And->getOperand(1), Shift->getOperand(1)) in foldICmpAndShift()
1732 : Builder.CreateShl(And->getOperand(1), Shift->getOperand(1)); in foldICmpAndShift()
1744 BinaryOperator *And, in foldICmpAndConstConst() argument
1752 match(And->getOperand(1), m_One())) in foldICmpAndConstConst()
1753 return new TruncInst(And->getOperand(0), Cmp.getType()); in foldICmpAndConstConst()
1757 if (!match(And, m_And(m_Value(X), m_APInt(C2)))) in foldICmpAndConstConst()
1761 if (!And->hasOneUse()) in foldICmpAndConstConst()
1774 KnownBits Know = computeKnownBits(And->getOperand(0), 0, And); in foldICmpAndConstConst()
1782 Constant *NegBOC = ConstantInt::get(And->getType(), -NewC2); in foldICmpAndConstConst()
1797 if (match(And->getOperand(0), m_OneUse(m_Trunc(m_Value(W)))) && in foldICmpAndConstConst()
1807 Value *NewAnd = Builder.CreateAnd(W, ZextC2, And->getName()); in foldICmpAndConstConst()
1812 if (Instruction *I = foldICmpAndShift(Cmp, And, C1, *C2)) in foldICmpAndConstConst()
1819 if (!Cmp.isSigned() && C1.isZero() && And->getOperand(0)->hasOneUse() && in foldICmpAndConstConst()
1820 match(And->getOperand(1), m_One())) { in foldICmpAndConstConst()
1821 Constant *One = cast<Constant>(And->getOperand(1)); in foldICmpAndConstConst()
1822 Value *Or = And->getOperand(0); in foldICmpAndConstConst()
1827 if (And->hasOneUse()) in foldICmpAndConstConst()
1841 Value *NewAnd = Builder.CreateAnd(A, NewOr, And->getName()); in foldICmpAndConstConst()
1874 BinaryOperator *And, in foldICmpAndConstant() argument
1876 if (Instruction *I = foldICmpAndConstConst(Cmp, And, C)) in foldICmpAndConstant()
1885 if (match(And->getOperand(0), m_Add(m_Value(X), m_AllOnes())) && in foldICmpAndConstant()
1886 match(And->getOperand(1), m_Not(m_Specific(X)))) { in foldICmpAndConstant()
1892 if (match(And, m_c_And(m_Neg(m_Value(X)), m_Deferred(X)))) { in foldICmpAndConstant()
1904 Value *X = And->getOperand(0); in foldICmpAndConstant()
1905 Value *Y = And->getOperand(1); in foldICmpAndConstant()
1935 if (C.isZero() && (Pred == CmpInst::ICMP_EQ || And->hasOneUse())) { in foldICmpAndConstant()
1954 if (match(And, m_OneUse(m_c_And(m_OneUse(m_ZExt(m_Value(X))), m_Value(Y)))) && in foldICmpAndConstant()
1958 Value *And = Builder.CreateAnd(TruncY, X); in foldICmpAndConstant() local
1959 return BinaryOperator::CreateNot(And); in foldICmpAndConstant()
1969 match(And, m_OneUse(m_c_And(m_OneUse(m_Shl(m_AllOnes(), m_Value(X))), in foldICmpAndConstant()
2025 auto BOpc = Pred == CmpInst::ICMP_EQ ? Instruction::And : Instruction::Or; in foldICmpOrXorSubChain()
2076 Value *And = Builder.CreateAnd(OrOp0, ~(*MaskC)); in foldICmpOrConstant() local
2078 return new ICmpInst(Pred, And, NewC); in foldICmpOrConstant()
2128 auto BOpc = Pred == CmpInst::ICMP_EQ ? Instruction::And : Instruction::Or; in foldICmpOrConstant()
2375 Value *And = Builder.CreateAnd(X, Mask, Shl->getName() + ".mask"); in foldICmpShlConstant() local
2377 return new ICmpInst(Pred, And, LShrC); in foldICmpShlConstant()
2387 Value *And = Builder.CreateAnd(X, Mask, Shl->getName() + ".mask"); in foldICmpShlConstant() local
2389 And, Constant::getNullValue(ShType)); in foldICmpShlConstant()
2397 Value *And = Builder.CreateAnd(X, (~C).lshr(ShiftAmt->getZExtValue())); in foldICmpShlConstant() local
2400 And, Constant::getNullValue(ShType)); in foldICmpShlConstant()
2405 Value *And = in foldICmpShlConstant() local
2409 And, Constant::getNullValue(ShType)); in foldICmpShlConstant()
2612 Value *And = Builder.CreateAnd(X, Mask, Shr->getName() + ".mask"); in foldICmpShrConstant() local
2613 return new ICmpInst(Pred, And, ConstantInt::get(ShrTy, C << ShAmtVal)); in foldICmpShrConstant()
2652 Value *And = Builder.CreateAnd(SRem->getOperand(0), MaskC); in foldICmpSRemConstant() local
2655 return new ICmpInst(Pred, And, ConstantInt::get(Ty, C)); in foldICmpSRemConstant()
2661 return new ICmpInst(ICmpInst::ICMP_SGT, And, ConstantInt::getNullValue(Ty)); in foldICmpSRemConstant()
2666 return new ICmpInst(ICmpInst::ICMP_UGT, And, ConstantInt::get(Ty, SignMask)); in foldICmpSRemConstant()
2724 auto Logic = Pred == ICmpInst::ICMP_EQ ? Instruction::And : Instruction::Or; in foldICmpDivConstant()
3529 Value *And = Builder.CreateAnd(BOp0, NotBOC); in foldICmpBinOpEqualityWithConstant() local
3530 return new ICmpInst(Pred, And, NotBOC); in foldICmpBinOpEqualityWithConstant()
3594 Value *And = Builder.CreateAnd( in foldCtpopPow2Test() local
3600 And, Constant::getNullValue(Op->getType())); in foldCtpopPow2Test()
3802 case Instruction::And: in foldICmpBinOpWithConstant()
3913 SatValCheck ? Instruction::BinaryOps::Or : Instruction::BinaryOps::And; in foldICmpUSubSatOrUAddSatWithConstant()
4202 case Instruction::And: in isMaskOrZero()
4761 Value *And = Builder.CreateAnd(X, MaxSignedVal); in foldICmpXNegX() local
4763 return CmpInst::Create(Instruction::ICmp, Pred, And, Zero); in foldICmpXNegX()
5663 Value *And = Builder.CreateAnd(Xor, ConstantExpr::getNot(C)); in foldICmpEquality() local
5664 return new ICmpInst(Pred, And, Constant::getNullValue(And->getType())); in foldICmpEquality()
5707 Value *And = Builder.CreateAnd(Xor, Builder.getInt(AndVal), in foldICmpEquality() local
5709 return new ICmpInst(Pred, And, Constant::getNullValue(Cst1->getType())); in foldICmpEquality()
5836 Value *And = Builder.CreateAnd(X, Mask); in foldICmpWithTrunc() local
5838 return new ICmpInst(Pred, And, Zero); in foldICmpWithTrunc()
5846 Value *And = Builder.CreateAnd(X, MaskC); in foldICmpWithTrunc() local
5847 return new ICmpInst(ICmpInst::ICMP_NE, And, MaskC); in foldICmpWithTrunc()
5854 Value *And = Builder.CreateAnd(X, MaskC); in foldICmpWithTrunc() local
5855 return new ICmpInst(ICmpInst::ICMP_EQ, And, MaskC); in foldICmpWithTrunc()
6192 if (BO->getOpcode() != Instruction::And) in processUMulZExtIdiom()
6265 assert(BO->getOpcode() == Instruction::And); in processUMulZExtIdiom()
6727 Pred1 == ICmpInst::ICMP_EQ ? Instruction::Or : Instruction::And, in foldICmpUsingBoolRange()