For integer comparisons, ensure the signed-unsigned comparison is safe.

Removed case 3, since -1 might also mean ~0 in which case the result of
the comparison differs for unsigned vs signed.