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

References

lib/Transforms/InstCombine/InstCombineAddSub.cpp
 1476   if (Value *V = SimplifyFAddInst(I.getOperand(0), I.getOperand(1),
 1476   if (Value *V = SimplifyFAddInst(I.getOperand(0), I.getOperand(1),
 1477                                   I.getFastMathFlags(),
 1478                                   SQ.getWithInstruction(&I)))
 1479     return replaceInstUsesWith(I, V);
 1481   if (SimplifyAssociativeOrCommutative(I))
 1482     return &I;
 1484   if (Instruction *X = foldVectorBinop(I))
 1487   if (Instruction *FoldedFAdd = foldBinOpIntoSelectOrPhi(I))
 1492   if (match(&I, m_c_FAdd(m_FNeg(m_Value(X)), m_Value(Y))))
 1493     return BinaryOperator::CreateFSubFMF(Y, X, &I);
 1498   if (match(&I, m_c_FAdd(m_OneUse(m_c_FMul(m_FNeg(m_Value(X)), m_Value(Y))),
 1500     Value *XY = Builder.CreateFMulFMF(X, Y, &I);
 1501     return BinaryOperator::CreateFSubFMF(Z, XY, &I);
 1505   if (match(&I, m_c_FAdd(m_OneUse(m_FDiv(m_FNeg(m_Value(X)), m_Value(Y))),
 1507       match(&I, m_c_FAdd(m_OneUse(m_FDiv(m_Value(X), m_FNeg(m_Value(Y)))),
 1509     Value *XY = Builder.CreateFDivFMF(X, Y, &I);
 1510     return BinaryOperator::CreateFSubFMF(Z, XY, &I);
 1515   Value *LHS = I.getOperand(0), *RHS = I.getOperand(1);
 1515   Value *LHS = I.getOperand(0), *RHS = I.getOperand(1);
 1544             ConstantExpr::getSIToFP(CI, I.getType()) == CFP &&
 1545             willNotOverflowSignedAdd(LHSIntVal, CI, I)) {
 1548           return new SIToFPInst(NewAdd, I.getType());
 1563             willNotOverflowSignedAdd(LHSIntVal, RHSIntVal, I)) {
 1566           return new SIToFPInst(NewAdd, I.getType());
 1573   if (Value *V = SimplifySelectsFeedingBinaryOp(I, LHS, RHS))
 1574     return replaceInstUsesWith(I, V);
 1576   if (I.hasAllowReassoc() && I.hasNoSignedZeros()) {
 1576   if (I.hasAllowReassoc() && I.hasNoSignedZeros()) {
 1577     if (Instruction *F = factorizeFAddFSub(I, Builder))
 1579     if (Value *V = FAddCombine(Builder).simplify(&I))
 1580       return replaceInstUsesWith(I, V);