reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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));