(Branched from D108058 as getting this completed should help unlock some other WIP patches).
If the type of a funnel shift needs to be expanded, expand it to two funnel shifts instead of regular shifts. For constant shifts, this doesn't make much difference, but for variable shifts it allows a more optimal lowering.
Also use the optimized funnel shift lowering for rotates.
Original Patch: @efriedma (Eli Friedman)