I saw this patch (https://reviews.llvm.org/D105796) optimize some mul operation with SH*ADD instruction.
so, I think this maybe also apply to SH*ADDUW.
value = rs1 & 0xFFFFFFFF
(mul value, 3 * power_of_2) -> (SLLI (SH1ADDUW value, value), bits)
(mul value, 5 * power_of_2) -> (SLLI (SH2ADDUW value, value), bits)
(mul value, 9 * power_of_2) -> (SLLI (SH3ADDUW value, value), bits)