InstCombine: Preserve nsw when folding X*(2^C) -> X << C