Lines Matching defs:C0
1236 const APInt *C0;
1237 if (match(Op1, m_APInt(C0))) {
1238 // (srem (mul nsw X, C1), C0) -> 0 if C1 s% C0 == 0
1239 // (urem (mul nuw X, C1), C0) -> 0 if C1 u% C0 == 0
1242 m_NSWMul(m_Value(), m_CheckedInt([C0](const APInt &C) {
1243 return C.srem(*C0).isZero();
1246 m_NUWMul(m_Value(), m_CheckedInt([C0](const APInt &C) {
1247 return C.urem(*C0).isZero();
1668 // Look for this pattern: {and/or} (icmp X, C0), (icmp X, C1)).
1672 const APInt *C0, *C1;
1673 if (!match(Cmp0->getOperand(1), m_APInt(C0)) ||
1677 auto Range0 = ConstantRange::makeExactICmpRegion(Cmp0->getPredicate(), *C0);
1681 // (icmp X, C0) && (icmp X, C1) --> empty set --> false
1686 // (icmp X, C0) || (icmp X, C1) --> full set --> true
1705 // (icmp (add V, C0), C1) & (icmp V, C0)
1707 const APInt *C0, *C1;
1709 if (!match(Op0, m_ICmp(Pred0, m_Add(m_Value(V), m_APInt(C0)), m_APInt(C1))))
1723 const APInt Delta = *C1 - *C0;
1724 if (C0->isStrictlyPositive()) {
1738 if (C0->getBoolValue() && IsNUW) {
1796 // (icmp (add V, C0), C1) | (icmp V, C0)
1798 const APInt *C0, *C1;
1800 if (!match(Op0, m_ICmp(Pred0, m_Add(m_Value(V), m_APInt(C0)), m_APInt(C1))))
1814 const APInt Delta = *C1 - *C0;
1815 if (C0->isStrictlyPositive()) {
1829 if (C0->getBoolValue() && IsNUW) {
6639 if (auto *C0 = dyn_cast<Constant>(Op0))
6641 return simplifyRelativeLoad(C0, C1, Q.DL);