This was inspired by the X86 pass but adapted to the needs of the SystemZ backend. The aim is to reduce spilling of registers by using free vector registers if available. Other benefits are also achieved, such as avoiding expensive vector element extractions.
Vector lanes management has been added, which means that the pass can for instance extend/truncate a value and still keep track of which element it will live in.