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

References

lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
 1049   if (Value *V = SimplifySDivInst(I.getOperand(0), I.getOperand(1),
 1049   if (Value *V = SimplifySDivInst(I.getOperand(0), I.getOperand(1),
 1050                                   SQ.getWithInstruction(&I)))
 1051     return replaceInstUsesWith(I, V);
 1053   if (Instruction *X = foldVectorBinop(I))
 1057   if (Instruction *Common = commonIDivTransforms(I))
 1060   Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
 1060   Value *Op0 = I.getOperand(0), *Op1 = I.getOperand(1);
 1070     return new ZExtInst(Builder.CreateICmpEQ(Op0, Op1), I.getType());
 1075     if (I.isExact() && Op1C->isNonNegative() && Op1C->isPowerOf2()) {
 1077       return BinaryOperator::CreateExactAShr(Op0, ShAmt, I.getName());
 1102       Constant *NegC = ConstantInt::get(I.getType(), -(*Op1C));
 1104       BO->setIsExact(I.isExact());
 1111   if (match(&I, m_SDiv(m_OneUse(m_NSWSub(m_Zero(), m_Value(X))), m_Value(Y))))
 1113         Builder.CreateSDiv(X, Y, I.getName(), I.isExact()));
 1113         Builder.CreateSDiv(X, Y, I.getName(), I.isExact()));
 1117   APInt Mask(APInt::getSignMask(I.getType()->getScalarSizeInBits()));
 1118   if (MaskedValueIsZero(Op0, Mask, 0, &I)) {
 1119     if (MaskedValueIsZero(Op1, Mask, 0, &I)) {
 1121       auto *BO = BinaryOperator::CreateUDiv(Op0, Op1, I.getName());
 1122       BO->setIsExact(I.isExact());
 1126     if (isKnownToBeAPowerOfTwo(Op1, /*OrZero*/ true, 0, &I)) {
 1131       auto *BO = BinaryOperator::CreateUDiv(Op0, Op1, I.getName());
 1132       BO->setIsExact(I.isExact());