This is an unusual canonicalization because we create an extra instruction, but it's very likely better for analysis and codegen (similar reasoning as D133399).
InstCombine::Negator aggressively creates this kind of multiply from subtract and shift, so this is partly reversing a transform in the motivating case from issue #57576.
We may want to limit Negator more to prevent creating multiplies like this. We've seen regressions from that, but no wins AFAIK.
I don't know how to create a fully general proof for this kind of transform in Alive2, but here's an example with bitwidths similar to one of the regression tests:
https://alive2.llvm.org/ce/z/J3jTjR