With 32 16-byte vector registers (VRs):
- Registers 0 to 7 are volatile.
- Bytes 0-7 of registers 8-15 are non-volatile and bytes 8-15 are
volatile.
- Registers 16 to 23 are non-volatile.
- Registers 24 to 31 are volatile
That is,
- If a called routine uses any of VRs 8 to 15, it must save bytes
0-7 of those VRs before use and restore them before returning to the
caller.
- If a called routine uses any of VRs 16 to 23, it must save those
VRs before use and restore them before returning to the caller.
- The called routine can use any of VRs 0 to 7 and VRs 24 to 31
without saving and restoring them. If the caller wants to keep data
in VRs 0 to 7 or bytes 8-15 of VRs 8 to 15 or VRs 24 to 31, it must
save those VRs before a call and restore them afterward.