Don't use a possibly overflowing ISD::SUB node as a check against 0.
Removing this optimization for the cases of SUBs with the NSW/NUW flag set only gives only a negligible difference over benchmarks: ~50 more compares and no noticeable performance changes on SPEC. Removing the adjustForSubtraction() entirely however gave more changes: 1530 more compares, so it seems advisable to keep that function for the SUBs without NSW/NUW flags.
It would be better to drop the flags instead -- the general preference is to drop nowrap flags rather than block optimizations due to their presence.