https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112433
--- Comment #1 from Kito Cheng <kito at gcc dot gnu.org> --- Give few more background why LLVM must do that way: LLVM can't allocate new pseudo register during register allocation process, however spilling vector register with specific length may require scratch register to setting the VL. And the benefit of more exactly live range for GPR is kind of by-products which we didn't aware during the discussion stage :P