In the motivating cases from https://llvm.org/PR48816 , we have a trailing trunc. But that is not required to reduce the abs width:
https://alive2.llvm.org/ce/z/ECaz-p
...as long as we clear the int-min-is-poison bit (nsw).
We have some existing tests that are affected, and I'm not sure what the overall implications are, but in general I think we favor narrowing operations over preserving nsw/nuw. If not, we could restrict this transform based on type (shouldChangeType() and/or vector vs. scalar).