This builds on D119558, and shows how having a compare node in SCEV itself lets us start to simplify the predication mechanism used in SCEVPredicate. This initial patch only handles the SCEVComparePredicate node, but once this lands, I plan to tackle the other leaf node type (SCEVWrapPredicate) and then the union wrapper.
Once this line of work is done, we will be able to form more general predicates, and will have eliminated all the duplicate logic in SCEVPredicate. The later will make it easier to keep the code correct, and the former will enable a couple of use cases which have come up in discussion over the last couple months.