On Sun, 2 Feb 2025 at 21:18, Thiago Jung Bauermann
<thiago.bauerm...@linaro.org> wrote:
>
> Since commit r15-491-gc290e6a0b7a9de this failure happens on on
> armv8l-linux-gnueabihf and arm-eabi:
>
> Running gcc:gcc.target/arm/simd/simd.exp ...
> gcc.target/arm/simd/mve-vabs.c: memmove found 0 times
> FAIL: gcc.target/arm/simd/mve-vabs.c scan-assembler-times memmove 3
>
> In PR PR target/116010, Andrew Pinski noted that
> "gcc.target/arm/simd/mve-vabs.c now calls memcpy because of the restrict
> instead of memmove. That should be a simple fix there."
>
> Therefore change the test to expect memcpy rather than memmove.
>
> Another change is that memcpy is inlined rather than called, so also change
> the test to check the optimized tree dump rather than the generated
> assembly.
>
> Tested on armv8l-linux-gnueabihf and arm-eabi.
>

LGTM, thanks.

Christophe

> gcc/testsuite/ChangeLog:
>         PR target/116010
>         * gcc.target/arm/simd/mve-vabs.c: Test tree dump and adjust to new
>         code.
>
> Suggested-by: Andrew Pinski <quic_apin...@quicinc.com>
> ---
>  gcc/testsuite/gcc.target/arm/simd/mve-vabs.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/gcc/testsuite/gcc.target/arm/simd/mve-vabs.c 
> b/gcc/testsuite/gcc.target/arm/simd/mve-vabs.c
> index f2f9ee349906..e85d0b18ee71 100644
> --- a/gcc/testsuite/gcc.target/arm/simd/mve-vabs.c
> +++ b/gcc/testsuite/gcc.target/arm/simd/mve-vabs.c
> @@ -1,7 +1,7 @@
>  /* { dg-do assemble } */
>  /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */
>  /* { dg-add-options arm_v8_1m_mve_fp } */
> -/* { dg-additional-options "-O3 -funsafe-math-optimizations" } */
> +/* { dg-additional-options "-O3 -funsafe-math-optimizations 
> -fdump-tree-optimized" } */
>
>  #include <stdint.h>
>  #include <arm_mve.h>
> @@ -35,10 +35,10 @@ FUNC_FLOAT(f, float, 32, 4, vabs)
>  FUNC(f, float, 16, 8, vabs)
>
>  /* Taking the absolute value of an unsigned value is a no-op, so half of the
> -   integer optimizations actually generate a call to memmove, the other ones 
> a
> +   integer optimizations actually generate a call to memcpy, the other ones a
>     'vabs'.  */
>  /* { dg-final { scan-assembler-times {vabs.s[0-9]+\tq[0-9]+, q[0-9]+} 3 } } 
> */
>  /* { dg-final { scan-assembler-times {vabs.f[0-9]+\tq[0-9]+, q[0-9]+} 2 } } 
> */
>  /* { dg-final { scan-assembler-times {vldr[bhw].[0-9]+\tq[0-9]+} 5 } } */
>  /* { dg-final { scan-assembler-times {vstr[bhw].[0-9]+\tq[0-9]+} 5 } } */
> -/* { dg-final { scan-assembler-times {memmove} 3 } } */
> +/* { dg-final { scan-tree-dump-times "memcpy" 3 "optimized" } } */

Reply via email to