Unsigned compares of the form <u 0 are always false. Do not create such
a redundant check in generateOverflowCheck.
The patch introduces a new lambda to create the check, so we can
exit early conveniently and skip creating some instructions feeding the
check.
I am planning to sink a few additional instructions as follow-ups, but I
would prefer to do this separately, to keep the changes and diff
smaller.
FWIW CreateOr already folds LHS | 0 -> LHS, so I think it would make sense to also fold 0 | RHS -> RHS there, for the sake of consistency.