Refactor and optimize spilling SGPRs to scratch. Remove unnecessary
EXEC copies, search a free VGPR with the RegScavenger and save inactive
lanes only if one is found.
Some parts of saving and restoring SGPRs are commoned up in
SGPRSpillBuilder.
Follow-up to D96336.
I don't think limiting the lanes helps any. Are you 100% sure this is worth the extra complexity? Does it actually reduce bandwidth?