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))))) {
  704       APInt Product(C1->getBitWidth(), /*val=*/0ULL, IsSigned);
  705       if (!multiplyOverflows(*C1, *C2, Product, IsSigned))
  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))))) {
  712       APInt Quotient(C1->getBitWidth(), /*val=*/0ULL, IsSigned);
  715       if (isMultiple(*C2, *C1, Quotient, IsSigned)) {
  723       if (isMultiple(*C1, *C2, Quotient, IsSigned)) {
  733     if ((IsSigned && match(Op0, m_NSWShl(m_Value(X), m_APInt(C1))) &&
  734          *C1 != C1->getBitWidth() - 1) ||
  734          *C1 != C1->getBitWidth() - 1) ||
  735         (!IsSigned && match(Op0, m_NUWShl(m_Value(X), m_APInt(C1))))) {
  736       APInt Quotient(C1->getBitWidth(), /*val=*/0ULL, IsSigned);
  738           C1->getBitWidth(), static_cast<unsigned>(C1->getLimitedValue()));
  738           C1->getBitWidth(), static_cast<unsigned>(C1->getLimitedValue()));