When LSR first adds SCEVs to BaseRegs, it only does it if isZero() has returned false.
In the end, in invocation of InsertFormula, it asserts that all values there are still not
zero constants. However between these two points, it makes some transformations,
in particular extends them to wider type.
SCEV does not give us guarantee that if S is not a constant zero, then sext(S) is
also not a constant zero. It might have missed some optimizing transforms when it
was calculating S and then made them when it took sext. For example, it may
happen if previously optimizing transforms were limited by depth or somehow else.
This patch adds a bailout when we may end up with a zero SCEV after extension.
typo: while