InstCombine transform A *nsw B +nsw A *nsw C to A *nsw (B + C).
This is incorrect -- e.g. if A = -1, B = 1, C = INT_SMAX. Then
nothing in the LHS overflows, but the multiplication in RHS overflows.
I'll have to admit that this proposed fix is a bit heavy-handed -- if
you think this will materially affect optimization then we can try to do
this transform for cases where we can prove correctness. For instance,
I *think* (but have not proved) that we can transform `(A +nsw A) +nsw
A` to A *nsw 3.