This is a superset of D48485 that includes transforming an 'or' back into an 'add' in addition to the shl+mul case shown there.
Here, we need value tracking to determine that the 'or' can be reversed into an 'add'.
IIUC, there are only a handful of opcodes where we'll try this. To repeat from the other review - I think we're distinguishing this pattern from the scenario where we have eliminated a binop completely and need to materialize a 'ghost' op with an identity constant.