diff mbox series

arm: testsuite: Adapt mve-vabs.c to improved codegen

Message ID 20250202201825.1601025-1-thiago.bauermann@linaro.org
State Accepted
Commit bcd3886e6692ba4b7127debcdfe4890199ec9e54
Headers show
Series arm: testsuite: Adapt mve-vabs.c to improved codegen | expand

Commit Message

Thiago Jung Bauermann Feb. 2, 2025, 8:18 p.m. UTC
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.

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_apinski@quicinc.com>
---
 gcc/testsuite/gcc.target/arm/simd/mve-vabs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Christophe Lyon Feb. 3, 2025, 9 a.m. UTC | #1
On Sun, 2 Feb 2025 at 21:18, Thiago Jung Bauermann
<thiago.bauermann@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_apinski@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" } } */
Thiago Jung Bauermann Feb. 4, 2025, 4:12 p.m. UTC | #2
Christophe Lyon <christophe.lyon@linaro.org> writes:

> On Sun, 2 Feb 2025 at 21:18, Thiago Jung Bauermann
> <thiago.bauermann@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.

Thanks! Pushed as commit bcd3886e6692 ("arm: testsuite: Adapt mve-vabs.c
to improved codegen").

--
Thiago
diff mbox series

Patch

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" } } */