This patch modifies ARMLowOverheadLoops to convert a predicated vector low-overhead loop into a tail-predicatd one. This is currently a very basic conversion, with the following restrictions:
- Operates only on single block loops.
- The loop can only contain a single vctp instruction.
- No other instructions can write to the vpr.
- We only allow a subset of the mve instructions in the loop.
Most of the changes are because the logic has been moved around. We now have a LowOverheadLoop object to hold, track and check the current state of the loop and its legality.
Nit, perhaps: VPTMIs -> VPTUsers?