If we sink a splat into a loop in order to make more use of MVE r reg instructions, we can sometimes get to a point where we go over the register limit, leading to more spills in the loop than we helped by not using the q reg. In order to alleviate that this patch attempts to come up with a rough estimate of the number of different registers used in a loop, and doesn't sink if there are free Q regs but no free R regs.
I had to add some LoopInfo update too, in order to prevent the LoopInfo containing stale information.