- skip multiple per instruction DPP register usage.
- don't combine when DPP register is used as part of superreg/supersubreg.
I had to refactor the code to fix the first issue, so that the check for
multiple uses of DPP register can be done for all uses. In the process
I discovered that the combiner can try to combine DPP registers that
are part of superreg (REG_SEQUENCE) and aren't used as independent lanes.
execMayBeModifiedBeforeAnyUse is now called once for all uses. Number of
uses is constrained by the caller.
I removed code patching REG_SEQUENCE but instead stopped deleting original
DPP mov instruction, it will be deleted in the DCE.
clang-format: please reformat the code