This ports the logic we generate in instcombine for a single use x.with.overflow check for use in SCEV's analysis. The result is that we can prove trip counts for many checks, and (through existing logic) often discharge them.
Motivation comes from compiling a simple example with -ftrapv.
I'd write these three conditions as match(ExitCond, m_ExtractValue<1>(m_WithOverflowInst(WO)).