Sorry for the very long delay in reviewing this. Things have been a bit hectic recently.
Christophe Lyon via Gcc-patches <gcc-patches@gcc.gnu.org> writes: > VPR_REG is the only register in its class, so it should be handled by > TARGET_CLASS_LIKELY_SPILLED_P. No test fails without this patch, but > it seems it should be implemented. I think instead we should change the “return false” so that it calls the default implementation (default_class_likely_spilled_p). That should handle this case correctly, as well as any future single-register classes that we might add. Thanks, Richard > > 2021-09-01 Christophe Lyon <christophe.l...@foss.st.com> > > gcc/ > * config/arm/arm.c (arm_class_likely_spilled_p): Handle VPR_REG. > > diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c > index 11dafc70067..1222cb0d0fe 100644 > --- a/gcc/config/arm/arm.c > +++ b/gcc/config/arm/arm.c > @@ -29307,6 +29307,9 @@ arm_class_likely_spilled_p (reg_class_t rclass) > || rclass == CC_REG) > return true; > > + if (TARGET_HAVE_MVE && (rclass == VPR_REG)) > + return true; > + > return false; > }