Hi Alex, > -----Original Message----- > From: Alex Coplan <alex.cop...@arm.com> > Sent: 07 April 2021 09:56 > To: gcc-patches@gcc.gnu.org > Cc: ni...@redhat.com; Richard Earnshaw <richard.earns...@arm.com>; > Ramana Radhakrishnan <ramana.radhakrish...@arm.com>; Kyrylo > Tkachov <kyrylo.tkac...@arm.com> > Subject: [PATCH] arm: Don't try and vmov labels [PR99647] > > Hi all, > > When investigating this PR, I was initially confused as to why we were > matching a vec_duplicate on the RHS of *mve_mov<mode> (since > general_operand does not match vec_duplicates). It turns out that there > are two patterns in mve.md named *mve_mov<mode> and the second one > matches vec_duplicates. I've renamed this pattern to *mve_vdup<mode> to > avoid further confusion. > > The issue in the PR is that the predicate for the operand of the > vec_duplicate in *mve_vdup<mode> is not strict enough: it allows (e.g.) > labels when we really only want to allow registers and const_ints. > > Testing: > * Bootstrapped and regtested on arm-linux-gnueabihf, no regressions. > * Regtested an arm-eabi cross configured with --with-float=hard > --with-arch=armv8.1-m.main+mve: no regressions. Also fixes a couple of > existing torture test failures at -O3 for gcc.dg/torture/pr47958-1.c. > > OK for trunk and eventual backport to the GCC 10 branch?
Ok for trunk. I think GCC 10.3 is due for release today or tomorrow, so it'll likely have to wait for GCC 10.4 backport. Thanks, Kyrill > > Thanks, > Alex > > gcc/ChangeLog: > > PR target/99647 > * config/arm/mve.md (*mve_mov<mode>): Rename to... > (*mve_vdup<mode>): ... this. Also tighten up predicate for > vec_duplicate operand. > > gcc/testsuite/ChangeLog: > > PR target/99647 > * gcc.c-torture/compile/pr99647.c: New test.