Home | History | Annotate | Download | only in InstCombine

Lines Matching refs:ConstantInt

29 static ConstantInt *getOne(Constant *C) {
30 return ConstantInt::get(cast<IntegerType>(C->getType()), 1);
33 static ConstantInt *ExtractElement(Constant *V, Constant *Idx) {
34 return cast<ConstantInt>(ConstantExpr::getExtractElement(V, Idx));
37 static bool HasAddOverflow(ConstantInt *Result,
38 ConstantInt *In1, ConstantInt *In2,
56 Constant *Idx = ConstantInt::get(Type::getInt32Ty(In1->getContext()), i);
66 return HasAddOverflow(cast<ConstantInt>(Result),
67 cast<ConstantInt>(In1), cast<ConstantInt>(In2),
71 static bool HasSubOverflow(ConstantInt *Result,
72 ConstantInt *In1, ConstantInt *In2,
91 Constant *Idx = ConstantInt::get(Type::getInt32Ty(In1->getContext()), i);
101 return HasSubOverflow(cast<ConstantInt>(Result),
102 cast<ConstantInt>(In1), cast<ConstantInt>(In2),
110 static bool isSignBitCheck(ICmpInst::Predicate pred, ConstantInt *RHS,
138 static bool isSignTest(ICmpInst::Predicate &pred, const ConstantInt *RHS) {
162 static bool isHighOnes(const ConstantInt *CI) {
221 CmpInst &ICI, ConstantInt *AndCst) {
238 !isa<ConstantInt>(GEP->getOperand(1)) ||
239 !cast<ConstantInt>(GEP->getOperand(1))->isZero() ||
250 ConstantInt *Idx = dyn_cast<ConstantInt>(GEP->getOperand(i));
326 if (!isa<ConstantInt>(C)) return nullptr;
330 bool IsTrueForElt = !cast<ConstantInt>(C)->isZero();
404 Value *FirstTrueIdx = ConstantInt::get(Idx->getType(), FirstTrueElement);
412 Value *SecondTrueIdx = ConstantInt::get(Idx->getType(), SecondTrueElement);
424 Value *FirstFalseIdx = ConstantInt::get(Idx->getType(), FirstFalseElement);
432 Value *SecondFalseIdx = ConstantInt::get(Idx->getType(),SecondFalseElement);
444 Value *Offs = ConstantInt::get(Idx->getType(), -FirstTrueElement);
448 Value *End = ConstantInt::get(Idx->getType(),
458 Value *Offs = ConstantInt::get(Idx->getType(), -FirstFalseElement);
462 Value *End = ConstantInt::get(Idx->getType(),
487 V = Builder->CreateLShr(ConstantInt::get(Ty, MagicBitvector), V);
488 V = Builder->CreateAnd(ConstantInt::get(Ty, 1), V);
489 return new ICmpInst(ICmpInst::ICMP_NE, V, ConstantInt::get(Ty, 0));
519 if (ConstantInt *CI = dyn_cast<ConstantInt>(GEP->getOperand(i))) {
547 ConstantInt *CI = dyn_cast<ConstantInt>(GEP->getOperand(i));
598 Constant *OffsetVal = ConstantInt::get(IntPtrTy, NewOffs);
741 Value *X, ConstantInt *CI,
747 return ReplaceInstUsesWith(ICI, ConstantInt::get(ICI.getType(), isTrue));
767 ConstantExpr::getSub(ConstantInt::getAllOnesValue(CI->getType()), CI);
778 ConstantInt *SMax = ConstantInt::get(X->getContext(),
805 ConstantInt *DivRHS) {
806 ConstantInt *CmpRHS = cast<ConstantInt>(ICI.getOperand(1));
847 ConstantInt *RangeSize = DivI->isExact() ? getOne(Prod) : DivRHS;
884 ConstantInt *DivNeg =cast<ConstantInt>(ConstantExpr::getNeg(RangeSize));
890 RangeSize = cast<ConstantInt>(ConstantExpr::getNeg(RangeSize));
894 HiBound = cast<ConstantInt>(ConstantExpr::getNeg(RangeSize));
962 ConstantInt *ShAmt) {
963 const APInt &CmpRHSV = cast<ConstantInt>(ICI.getOperand(1))->getValue();
990 ConstantInt::get(Shr->getType(), APInt::getOneBitSet(TypeBits, ShAmtVal));
1008 Instruction *Res = FoldICmpDivCst(ICI, TheDiv, cast<ConstantInt>(DivCst));
1017 ConstantInt *ShiftedCmpRHS = Builder->getInt(Comp);
1052 ConstantInt *RHS) {
1077 if (ConstantInt *XorCst = dyn_cast<ConstantInt>(LHSI->getOperand(1))) {
1143 if (LHSI->hasOneUse() && isa<ConstantInt>(LHSI->getOperand(1)) &&
1145 ConstantInt *AndCst = cast<ConstantInt>(LHSI->getOperand(1));
1190 ConstantInt *ShAmt;
1191 ShAmt = Shift ? dyn_cast<ConstantInt>(Shift->getOperand(1)) : nullptr;
1220 ConstantInt *ShiftedAndCst =
1221 cast<ConstantInt>(ConstantExpr::getShl(AndCst, ShAmt));
1222 ConstantInt *ShiftedRHSCst =
1223 cast<ConstantInt>(ConstantExpr::getShl(RHS, ShAmt));
1302 !LI->isVolatile() && isa<ConstantInt>(LHSI->getOperand(1))) {
1303 ConstantInt *C = cast<ConstantInt>(LHSI->getOperand(1));
1341 ConstantInt *Val = dyn_cast<ConstantInt>(LHSI->getOperand(1));
1359 ConstantInt *ShAmt = dyn_cast<ConstantInt>(LHSI->getOperand(1));
1395 ConstantInt::get(RHS->getType(), RHSLog2));
1401 ConstantInt::get(RHS->getType(), TypeBits-1));
1406 ConstantInt::get(RHS->getType(), TypeBits-1));
1412 ConstantInt::get(RHS->getType(), TypeBits-1));
1418 ConstantInt::get(RHS->getType(), TypeBits-1));
1423 Pred, X, ConstantInt::get(RHS->getType(), RHSV.logBase2()));
1490 Constant *Mask = ConstantInt::get(LHSI->getOperand(0)->getType(),
1511 ConstantInt::get(RHS->getType(), Amt)),
1525 if (ConstantInt *ShAmt = dyn_cast<ConstantInt>(LHSI->getOperand(1))) {
1546 if (ConstantInt *DivRHS = dyn_cast<ConstantInt>(LHSI->getOperand(1)))
1553 ConstantInt *LHSC = dyn_cast<ConstantInt>(LHSI->getOperand(0));
1579 ConstantInt *LHSC = dyn_cast<ConstantInt>(LHSI->getOperand(1));
1635 if (RHSV == 0 && isa<ConstantInt>(BO->getOperand(1)) &&BO->hasOneUse()){
1636 const APInt &V = cast<ConstantInt>(BO->getOperand(1))->getValue();
1648 if (ConstantInt *BOp1C = dyn_cast<ConstantInt>(BO->getOperand(1))) {
1682 if (ConstantInt *BOp0C = dyn_cast<ConstantInt>(BO->getOperand(0))) {
1695 if (ConstantInt *BOC = dyn_cast<ConstantInt>(BO->getOperand(1))) {
1703 if (ConstantInt *BOC = dyn_cast<ConstantInt>(BO->getOperand(1))) {
1740 if (ConstantInt *BOC = dyn_cast<ConstantInt>(BO->getOperand(1))) {
1766 ICI.setOperand(1, ConstantInt::get(RHS->getType(), 0));
1849 ConstantInt *CI = dyn_cast<ConstantInt>(ICI.getOperand(1));
1906 ConstantInt *CI2, ConstantInt *CI1,
2077 if (ConstantInt *CI = dyn_cast<ConstantInt>(BO->getOperand(1))) {
2106 ConstantInt *CI;
2124 if (ConstantInt *CI = dyn_cast<ConstantInt>(OtherVal)) {
2136 if (ConstantInt *CI = dyn_cast<ConstantInt>(OtherVal)) {
2147 if (ConstantInt *CI = dyn_cast<ConstantInt>(OtherVal)) {
2159 if (ConstantInt *CI = dyn_cast<ConstantInt>(OtherVal)) {
2201 ConstantInt *CI = cast<ConstantInt>(BO->getOperand(1));
2257 ConstantInt *CI = dyn_cast<ConstantInt>(I.getOperand(1));
2418 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) {
2434 ConstantInt *CI2; // I = icmp ugt (add (add A, B), CI2), CI
2515 ConstantInt::get(Op0->getType(), Op0Min), Op1);
2518 ConstantInt::get(Op1->getType(), Op1Min));
2526 return ReplaceInstUsesWith(I, ConstantInt::getFalse(I.getType()));
2535 ConstantInt *LHSC = nullptr;
2549 ConstantInt::get(X->getType(), CmpVal));
2553 ConstantInt::get(X->getType(), CmpVal));
2563 ConstantInt::get(X->getType(),
2571 return ReplaceInstUsesWith(I, ConstantInt::getTrue(I.getType()));
2580 ConstantInt *LHSC = nullptr;
2594 ConstantInt::get(X->getType(), CmpVal));
2598 ConstantInt::get(X->getType(), CmpVal));
2608 ConstantInt::get(X->getType(),
2616 return ReplaceInstUsesWith(I, ConstantInt::getTrue(I.getType()));
2618 return ReplaceInstUsesWith(I, ConstantInt::getFalse(I.getType()));
2621 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) {
2634 return ReplaceInstUsesWith(I, ConstantInt::getTrue(I.getType()));
2636 return ReplaceInstUsesWith(I, ConstantInt::getFalse(I.getType()));
2640 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) {
2653 return ReplaceInstUsesWith(I, ConstantInt::getTrue(I.getType()));
2655 return ReplaceInstUsesWith(I, ConstantInt::getFalse(I.getType()));
2658 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) {
2666 return ReplaceInstUsesWith(I, ConstantInt::getTrue(I.getType()));
2668 return ReplaceInstUsesWith(I, ConstantInt::getFalse(I.getType()));
2672 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) {
2679 assert(!isa<ConstantInt>(Op1) && "ICMP_SGE with ConstantInt not folded!");
2681 return ReplaceInstUsesWith(I, ConstantInt::getTrue(I.getType()));
2683 return ReplaceInstUsesWith(I, ConstantInt::getFalse(I.getType()));
2686 assert(!isa<ConstantInt>(Op1) && "ICMP_SLE with ConstantInt not folded!");
2688 return ReplaceInstUsesWith(I, ConstantInt::getTrue(I.getType()));
2690 return ReplaceInstUsesWith(I, ConstantInt::getFalse(I.getType()));
2693 assert(!isa<ConstantInt>(Op1) && "ICMP_UGE with ConstantInt not folded!");
2695 return ReplaceInstUsesWith(I, ConstantInt::getTrue(I.getType()));
2697 return ReplaceInstUsesWith(I, ConstantInt::getFalse(I.getType()));
2700 assert(!isa<ConstantInt>(Op1) && "ICMP_ULE with ConstantInt not folded!");
2702 return ReplaceInstUsesWith(I, ConstantInt::getTrue(I.getType()));
2704 return ReplaceInstUsesWith(I, ConstantInt::getFalse(I.getType()));
2731 if (ConstantInt *CI = dyn_cast<ConstantInt>(Op1)) {
2732 // Since the RHS is a ConstantInt (CI), if the left hand side is an
2948 if (ConstantInt *C1 = dyn_cast<ConstantInt>(B))
2949 if (ConstantInt *C2 = dyn_cast<ConstantInt>(D)) {
2956 ConstantInt *C3 = Builder->getInt(AP1 - AP2);
2960 ConstantInt *C3 = Builder->getInt(AP2 - AP1);
3000 if (ConstantInt *RHSC = dyn_cast<ConstantInt>(Op1))
3021 return ReplaceInstUsesWith(I, ConstantInt::getFalse(I.getType()));
3023 return ReplaceInstUsesWith(I, ConstantInt::getTrue(I.getType()));
3047 if (ConstantInt *CI = dyn_cast<ConstantInt>(BO0->getOperand(1))) {
3070 if (ConstantInt *CI = dyn_cast<ConstantInt>(BO0->getOperand(1))) {
3075 ConstantInt *Mask = ConstantInt::get(I.getContext(),
3125 if (ConstantInt *RHSC = dyn_cast<ConstantInt>(Op1))
3168 ConstantInt *C1, *C2;
3218 ConstantInt *Cst1;
3277 Value *X; ConstantInt *Cst;