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