On 2024-11-14 16:16, Christophe Lyon wrote:
Hi Torbjörn,
On Sun, 10 Nov 2024 at 10:09, Torbjörn SVENSSON
<torbjorn.svens...@foss.st.com> wrote:
Changes since v1:
- Changed from arm_neon to arm_arch_v7a for the required effective target.
Changes since v2:
- Added arm_libc_fp_abi as an required effective taret.
- Removed to arm_neon and arm_vfp from effective target.
With v3, the tests are now tested in armv7-a context in either hard or softfp
mode, depending on how libc was built.
I can see these tests have already quite a bit of history regarding
their dg-effective-target.... :-)
In your initial email, you said the tests fail for m55hard and
m85hard. So does this mean they pass for m7hard etc ? (I mean without
this patch).
Without the patch, the test cases are listed as unsupported due to
conflicting switches (in this case -mcpu=cortex-m7 and -march=X where X
depends on the test case...). The only targets that passes the required
effective-target is armv8.m-main, but it is incompatible with the
include of arm_nenon.h.
With the patch, all the tests are executed in armv7-a context, so then
they all pass.
As Richard said, there seems to be an underlying issue we can fix separately.
Ok for trunk and releases/gcc-14?
AFAIU the patch does what was suggested: skip those tests on M-profile.
Does the arm_arch_v7a part also work on gcc-14 given it does not have
the -cpu=unset feature?
I only have a really old build of GCC14 available right now but it
appears fine. Also, without the unset-feature, if the tested target is
not compatible with -march=armv7-a, then there would be a warning
printed and that would be enough to say that the effective-target is not
fulfilled. The drawback is that there might be a few more combinations
that will no list the test as unsupported rather than fail/pass.
Kind regards,
Torbjörn
Thanks,
Christophe
--
Force armv7-a as the tests require a neon compatible architecture.
gcc/testsuite/ChangeLog:
* gcc.target/arm/attr-neon-builtin-fail.c: Use effective-target
arm_arch_v7a.
* gcc.target/arm/attr-neon-builtin-fail2.c: Likewise.
* gcc.target/arm/attr-neon-fp16.c: Likewise.
* gcc.target/arm/attr-neon2.c: Likewise.
Signed-off-by: Torbjörn SVENSSON <torbjorn.svens...@foss.st.com>
---
gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c | 7 ++++---
gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c | 6 ++++--
gcc/testsuite/gcc.target/arm/attr-neon-fp16.c | 6 ++++--
gcc/testsuite/gcc.target/arm/attr-neon2.c | 7 ++++---
4 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
index fb6e0b9cd66..143ad9c4908 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
@@ -1,9 +1,10 @@
/* Check that calling a neon builtin from a function compiled with vfp fails.
*/
/* { dg-do compile } */
-/* { dg-require-effective-target arm_fp_ok } */
-/* { dg-require-effective-target arm_neon_ok } */
+/* { dg-require-effective-target arm_arch_v7a_ok } */
+/* { dg-require-effective-target arm_libc_fp_abi_ok } */
/* { dg-options "-O2" } */
-/* { dg-add-options arm_fp } */
+/* { dg-add-options arm_arch_v7a } */
+/* { dg-add-options arm_libc_fp_abi } */
#include <arm_neon.h>
diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
index 9cb5a2ebb90..39689b7c3c7 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
@@ -1,8 +1,10 @@
/* Check that calling a neon builtin from a function compiled with vfp fails.
*/
/* { dg-do compile } */
-/* { dg-require-effective-target arm_vfp_ok } */
+/* { dg-require-effective-target arm_arch_v7a_ok } */
+/* { dg-require-effective-target arm_libc_fp_abi_ok } */
/* { dg-options "-O2" } */
-/* { dg-add-options arm_vfp } */
+/* { dg-add-options arm_arch_v7a } */
+/* { dg-add-options arm_libc_fp_abi } */
extern __simd64_int8_t a, b;
diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
index d7b75645bc4..9bc6ce635e2 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
@@ -1,8 +1,10 @@
/* { dg-do compile } */
/* { dg-skip-if "-mpure-code supports M-profile only and without Neon" { *-*-* } {
"-mpure-code" } } */
-/* { dg-require-effective-target arm_fp_ok } */
+/* { dg-require-effective-target arm_arch_v7a_ok } */
+/* { dg-require-effective-target arm_libc_fp_abi_ok } */
/* { dg-options "-mfp16-format=ieee" } */
-/* { dg-add-options arm_fp } */
+/* { dg-add-options arm_arch_v7a } */
+/* { dg-add-options arm_libc_fp_abi } */
#include "arm_neon.h"
diff --git a/gcc/testsuite/gcc.target/arm/attr-neon2.c
b/gcc/testsuite/gcc.target/arm/attr-neon2.c
index a7a72dac379..db10cfa4928 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon2.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon2.c
@@ -1,8 +1,9 @@
/* { dg-do compile } */
-/* { dg-require-effective-target arm_neon_ok } */
-/* { dg-require-effective-target arm_fp_ok } */
+/* { dg-require-effective-target arm_arch_v7a_ok } */
+/* { dg-require-effective-target arm_libc_fp_abi_ok } */
/* { dg-options "-Ofast" } */
-/* { dg-add-options arm_fp } */
+/* { dg-add-options arm_arch_v7a } */
+/* { dg-add-options arm_libc_fp_abi } */
/* Reset fpu to a value compatible with the next pragmas. */
#pragma GCC target ("fpu=vfp")
--
2.25.1