If we're linearizing a multiply expression, convert any left shift by a constant into a multiply, so they can be reassociated. We already do a similar optimization where we convert a negation into a multiply by -1.
See the test case for an example of what this hits.
Also, this addresses PR30256, which is a 4.0 release blocker.
Chad
Why don't we don't erase the dead Shl here?