This patch implements two things to have one testable unit:
- LVLGen inserts 'lvl' instructions to set the VL register.
- vreg-to-vreg copy uses vector instructions.
The VE backend represents vector instructions with an explicit 'i32'
vector length operand. In the VE ISA, the vector length is always read
from the VL hardware register. The LVLGen pass makes sure that the VL
register always holds the right value before each vector instruction.
We add tests for the 'fastcc', which passes vector operands in registers.
This triggers the vreg-to-vreg copy path, which requires code to set the
VL register, which in turn is inserted by the LVLGen pass.