BB1: Conditional jump outside Fallthrough or explicit branch to BB2 BB2: The same conditional branch leading to somewhere else outside Fallthrough or explicit branch to BB3
can be transformed to
BB1: Conditional jump outside Fallthrough or explicit branch to BB2 BB2: Fallthrough or explicit branch to BB3
Instead of only 1 pred, you could check that all predecessors share the conditions?