If the GPR destination register of a VSETVLI instruction is unused, we can replace it with X0. This discards the result, and thus reduces register pressure.
Since after the core insertion/lowering algorithm has run, basically all user written VSETVLIs will have their GPR result unused (as VTYPE/VLEN is now explicitly read instead), this kicks in for most tests which involve a vsetvli intrinsic. When inserting VSETVLIs to lower psuedos, we prefer the X0 form anyways.
I know we have PseudoVSETVLIX0, but is it really an invariant that PseudoVSETVLI never has X0, X0 at this stage? Should we maybe add an assert to be a bit more sure? If for whatever reason we do have X0, X0 this would (subtly) generate some wrong code.