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

References

lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
  702     if ((IsSigned && match(Op0, m_SDiv(m_Value(X), m_APInt(C1)))) ||
  703         (!IsSigned && match(Op0, m_UDiv(m_Value(X), m_APInt(C1))))) {
  710     if ((IsSigned && match(Op0, m_NSWMul(m_Value(X), m_APInt(C1)))) ||
  711         (!IsSigned && match(Op0, m_NUWMul(m_Value(X), m_APInt(C1))))) {
  726         auto *OBO = cast<OverflowingBinaryOperator>(Op0);
  733     if ((IsSigned && match(Op0, m_NSWShl(m_Value(X), m_APInt(C1))) &&
  735         (!IsSigned && match(Op0, m_NUWShl(m_Value(X), m_APInt(C1))))) {
  752         auto *OBO = cast<OverflowingBinaryOperator>(Op0);
  764   if (match(Op0, m_One())) {
  770       Value *Inc = Builder.CreateAdd(Op1, Op0);
  776       return new ZExtInst(Builder.CreateICmpEQ(Op1, Op0), Ty);
  786   if (match(Op0, m_Sub(m_Value(X), m_Value(Z)))) // (X - Z) / Y; Y = Op1
  793   if (IsSigned && match(Op0, m_NSWShl(m_Specific(Op1), m_Value(Y))))
  795   if (!IsSigned && match(Op0, m_NUWShl(m_Specific(Op1), m_Value(Y))))
  799   if (match(Op1, m_c_Mul(m_Specific(Op0), m_Value(Y)))) {