InstCombine will merge the x*5+x into x*6,
then decompose MUL By const into shift/add or shift/sub, eg:
Change the costmodel to lower a = b * C where C = (2^n + 1) * 2^m to
add w0, w0, w0, lsl n lsl w0, w0, m
Fixes AArch64 part of https://github.com/llvm/llvm-project/issues/57255.
We can't just expect the first user of a const will be the mul we are interested in.
All the other handling of decomposing mul into add+shift is currently done in performMulCombine. Would it be better to just alter the code that is already there? It would make it easier to be more precise with the costmodel.