Make an exploiting to use mtvsrdd instruction when save called-saved GPR registers to VSR registers.
Because mtvsrdd can save two GPRs together at one time and make the space/time more efficient.
The comment are comparing to old implementation? This is unnecessary?
No need to check hasP9Vector() here, we already early exit above when !Subtarget.hasP9Vector() in line 2107.
Similar to above, we only enable spill to VSR for P9, so no need to check here.
Can this be a lamda or function?
Please add comments about the mapping from GPR to VSR?
Do we want to save the two GPRs in the order of endian order? or maybe fixed litten endian?
Never use assert(0...), that's what llvm_unreachable is for.
Maybe the order here should be align with the restore order?
Never use assert(0), that's what llvm_unreachable is for.
several GPRs? 1 or 2?
Please add comments about checking points.
It looks weird to have x14 before x15, although they should be the same.