reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/InstCombine/InstCombineCompares.cpp
 2028     return foldICmpShlConstConst(Cmp, Shl->getOperand(1), C, *ShiftVal);
 2032     return foldICmpShlOne(Cmp, Shl, C);
 2036   unsigned TypeBits = C.getBitWidth();
 2050       APInt ShiftedC = C.ashr(*ShiftAmt);
 2054         C.ashr(*ShiftAmt).shl(*ShiftAmt) == C) {
 2054         C.ashr(*ShiftAmt).shl(*ShiftAmt) == C) {
 2055       APInt ShiftedC = C.ashr(*ShiftAmt);
 2063       assert(!C.isMinSignedValue() && "Unexpected icmp slt");
 2064       APInt ShiftedC = (C - 1).ashr(*ShiftAmt) + 1;
 2070     if (isSignTest(Pred, C))
 2080       APInt ShiftedC = C.lshr(*ShiftAmt);
 2084         C.lshr(*ShiftAmt).shl(*ShiftAmt) == C) {
 2084         C.lshr(*ShiftAmt).shl(*ShiftAmt) == C) {
 2085       APInt ShiftedC = C.lshr(*ShiftAmt);
 2093       assert(C.ugt(0) && "ult 0 should have been eliminated");
 2094       APInt ShiftedC = (C - 1).lshr(*ShiftAmt) + 1;
 2105     Constant *LShrC = ConstantInt::get(ShType, C.lshr(*ShiftAmt));
 2111   if (Shl->hasOneUse() && isSignBitCheck(Pred, C, TrueIfSigned)) {
 2124     if ((C + 1).isPowerOf2() &&
 2126       Value *And = Builder.CreateAnd(X, (~C).lshr(ShiftAmt->getZExtValue()));
 2132     if (C.isPowerOf2() &&
 2135           Builder.CreateAnd(X, (~(C - 1)).lshr(ShiftAmt->getZExtValue()));
 2149   if (Shl->hasOneUse() && Amt != 0 && C.countTrailingZeros() >= Amt &&
 2155         ConstantInt::get(TruncTy, C.ashr(*ShiftAmt).trunc(TypeBits - Amt));