This is potentially required by targets for correctness, or at least for optimization purposes.
Let me know what you think. This is necessary for our downstream target as we have a complicated per-operand scheduling model. However, as I don't think it's too controversial I thought I would push it back upstream.