All pastes #834502 Raw Edit

Unnamed

public text v1 · immutable
#834502 ·published 2007-12-28 07:33 UTC
rendered paste body
    // (icmp cond (sub A B) 0) -> ...
    if (CI->isNullValue() && match(Op0, m_Sub(m_Value(A), m_Value(B)))) {
      // (icmp cond A B) if cond is signed or equality
      if (CmpInst::isSigned(I.getPredicate()) || I.isEquality())
        return new ICmpInst(I.getPredicate(), A, B);
      // (icmp ne A B) if cond is ugt
      else if (I.getPredicate() == ICmpInst::ICMP_UGT)
        return new ICmpInst(ICmpInst::ICMP_NE, A, B);
      // (icmp eq A B) if cond is ULE
      else if (I.getPredicate() == ICmpInst::ICMP_ULE)
        return new ICmpInst(ICmpInst::ICMP_EQ, A, B);
    }