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.

Reply via email to