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

References

lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
  418   if (match(Op0, m_FNeg(m_Value(X))) && match(Op1, m_FNeg(m_Value(Y))))
  419     return BinaryOperator::CreateFMulFMF(X, Y, &I);
  423   if (match(Op0, m_FNeg(m_Value(X))) && match(Op1, m_Constant(C)))
  424     return BinaryOperator::CreateFMulFMF(X, ConstantExpr::getFNeg(C), &I);
  427   if (Op0 == Op1 && match(Op0, m_Intrinsic<Intrinsic::fabs>(m_Value(X))))
  428     return BinaryOperator::CreateFMulFMF(X, X, &I);
  428     return BinaryOperator::CreateFMulFMF(X, X, &I);
  439       if (match(Op0, m_OneUse(m_FDiv(m_Constant(C1), m_Value(X))))) {
  443           return BinaryOperator::CreateFDivFMF(CC1, X, &I);
  445       if (match(Op0, m_FDiv(m_Value(X), m_Constant(C1)))) {
  449           return BinaryOperator::CreateFMulFMF(X, CDivC1, &I);
  455           return BinaryOperator::CreateFDivFMF(X, C1DivC, &I);
  461       if (match(Op0, m_OneUse(m_FAdd(m_Value(X), m_Constant(C1))))) {
  464         Value *XC = Builder.CreateFMulFMF(X, C, &I);
  467       if (match(Op0, m_OneUse(m_FSub(m_Constant(C1), m_Value(X))))) {
  470         Value *XC = Builder.CreateFMulFMF(X, C, &I);
  476     if (match(&I, m_c_FMul(m_OneUse(m_FDiv(m_Value(X), m_Value(Y))),
  479       Value *NewFMul = Builder.CreateFMulFMF(X, Z, &I);
  487         match(Op0, m_OneUse(m_Intrinsic<Intrinsic::sqrt>(m_Value(X)))) &&
  489       Value *XY = Builder.CreateFMulFMF(X, Y, &I);
  500       if (match(Op0, m_FDiv(m_Value(X),
  502         Value *XX = Builder.CreateFMulFMF(X, X, &I);
  502         Value *XX = Builder.CreateFMulFMF(X, X, &I);
  507                             m_Value(X)))) {
  508         Value *XX = Builder.CreateFMulFMF(X, X, &I);
  508         Value *XX = Builder.CreateFMulFMF(X, X, &I);
  515     if (match(Op0, m_Intrinsic<Intrinsic::exp>(m_Value(X))) &&
  518       Value *XY = Builder.CreateFAddFMF(X, Y, &I);
  525     if (match(Op0, m_Intrinsic<Intrinsic::exp2>(m_Value(X))) &&
  528       Value *XY = Builder.CreateFAddFMF(X, Y, &I);
  556             m_OneUse(m_FMul(m_Value(X), m_SpecificFP(0.5))))))) {
  561             m_OneUse(m_FMul(m_Value(X), m_SpecificFP(0.5))))))) {
  566       Log2->setArgOperand(0, X);