A bit of bikeshedding: While it's obviously a bug, I'm not really sure it's useful to truncate before emitting the widening shift. Do we save an instruction vs. the regular non-widening shift by doing so?
I think my original (failed) idea was this pattern to be an intermediate/bridge pattern that never splits. Once we need to "split" maybe the regular shift is better or at least similar? -- Regards Robin