Fix issues discussed after https://reviews.llvm.org/D55314
- dpp move with uses and old reg initializer should be in the same BB.
- bound_ctrl:0 is only considered when bank_mask and row_mask are fully enabled (0xF). Othervise the old register value is checked for identity.
- Added add, subrev, and, or instructions to the old folding function.
- Kill flag is cleared for the src0 (DPP register) as it may be copied into more than one user.
Tests are updated.
The pass is still disabled by default, I would be appreciate if someone could test it on RADV (being turned on).
I think you have AND and OR mixed up... the identity for AND should be -1, and OR should be 0, right?