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