On Thu, 6 Nov 2025 at 14:04, Christophe Lyon via Sourceware Forge
<[email protected]> wrote:
>
> Hi gcc-patches mailing list,
> Christophe Lyon <[email protected]> has requested that the following forgejo 
> pull request
> be published on the mailing list.
>
> Created on: 2025-10-14 20:19:29+00:00
> Latest update: 2025-11-06 13:03:10+00:00
> Changes: 5 changed files, 38 additions, 16 deletions
> Head revision: clyon/gcc-TEST ref arm_v8_vfp commit 
> dc7831a8ad6e167b2bcbc896dde3f9e89c921dfd
> Base revision: gcc/gcc-TEST ref trunk commit 
> 80af807e52e4f4c480454e5a54aaeb7ce44556fd r16-4540-g80af807e52e4f4
> Merge base: 80af807e52e4f4c480454e5a54aaeb7ce44556fd
> Full diff url: https://forge.sourceware.org/gcc/gcc-TEST/pulls/104.diff
> Discussion:  https://forge.sourceware.org/gcc/gcc-TEST/pulls/104
> Requested Reviewers: rearnsha
>
> This effective-target does not need to check for arm32, but needs to
> force -march=armv8-a, otherwise -mfpu=fp-armv8 has no useful meaning.
>
> While fixing that, introduce
> check_effective_target_arm_v8_vfp_ok_nocache, so that arm_v8_vfp_ok
> behaves like arm_v8_neon_ok and many other effective-targets.
>
> Without this patch, gcc.target/arm/attr-neon.c fails with a toolchain
> configured with --with-mode=thumb --with-cpu=cortex-m0
> --with-float=soft because arm_v8_vfp returns "" because arm32 is
> false.  As a result, the testcase is compiled with the options needed
> for arm_neon_ok, which generates an extra ".fpu neon" directive
> compared to what is expected.
>
> The patch removes -march=armv8-a from dg-options in lceil-vcvt_1.c,
> lfloor-vcvt_1.c lround-vcvt_1.c and vrinta-ce.c, because this could
> override what arm_v8_vfp_ok detected (and lead to 'error: selected
> architecture lacks an FPU').
>
> With this patch, the test passes, and several others are enabled:
> gcc.target/arm/lceil-vcvt_1.c
> gcc.target/arm/lfloor-vcvt_1.c
> gcc.target/arm/lround-vcvt_1.c
> gcc.target/arm/pr69135_1.c
> gcc.target/arm/vmaxnmdf.c
> gcc.target/arm/vmaxnmsf.c
> gcc.target/arm/vminnmdf.c
> gcc.target/arm/vminnmsf.c
> gcc.target/arm/vrinta-ce.c
> gcc.target/arm/vrintaf32.c
> gcc.target/arm/vrintaf64.c
> gcc.target/arm/vrintmf32.c
> gcc.target/arm/vrintmf64.c
> gcc.target/arm/vrintpf32.c
> gcc.target/arm/vrintpf64.c
> gcc.target/arm/vrintrf32.c
> gcc.target/arm/vrintrf64.c
> gcc.target/arm/vrintxf32.c
> gcc.target/arm/vrintxf64.c
> gcc.target/arm/vrintzf32.c
> gcc.target/arm/vrintzf64.c
> gcc.target/arm/vseleqdf.c
> gcc.target/arm/vseleqsf.c
> gcc.target/arm/vselgedf.c
> gcc.target/arm/vselgesf.c
> gcc.target/arm/vselgtdf.c
> gcc.target/arm/vselgtsf.c
> gcc.target/arm/vselledf.c
> gcc.target/arm/vsellesf.c
> gcc.target/arm/vselltdf.c
> gcc.target/arm/vselltsf.c
> gcc.target/arm/vselnedf.c
> gcc.target/arm/vselnesf.c
> gcc.target/arm/vselvcdf.c
> gcc.target/arm/vselvcsf.c
> gcc.target/arm/vselvsdf.c
> gcc.target/arm/vselvssf.c
>
> gcc/testsuite/ChangeLog:
>         * lib/target-supports.exp
>         (check_effective_target_arm_v8_vfp_ok_nocache): New.
>         (check_effective_target_arm_v8_vfp_ok): Call the above helper, and
>         use global flags.
>         (add_options_for_arm_v8_vfp): Use et_arm_v8_vfp_flags.
>         * gcc.target/arm/lceil-vcvt_1.c: Remove -march=armv8-a.
>         * gcc.target/arm/lfloor-vcvt_1.c: Likewise.
>         * gcc.target/arm/lround-vcvt_1.c: Likewise.
>         * gcc.target/arm/vrinta-ce.c: Likewise.
>         *
>
>
> Changed files:
> - M: gcc/testsuite/gcc.target/arm/lceil-vcvt_1.c
> - M: gcc/testsuite/gcc.target/arm/lfloor-vcvt_1.c
> - M: gcc/testsuite/gcc.target/arm/lround-vcvt_1.c
> - M: gcc/testsuite/gcc.target/arm/vrinta-ce.c
> - M: gcc/testsuite/lib/target-supports.exp
>
Richard approved the patch on the forge, pushed as r16-5053-gc35bab08191134.

Thanks,

Christophe

>
> Christophe Lyon (1):
>   testsuite: arm: fix arm_v8_vfp_ok effective-target
>
>  gcc/testsuite/gcc.target/arm/lceil-vcvt_1.c  |  2 +-
>  gcc/testsuite/gcc.target/arm/lfloor-vcvt_1.c |  2 +-
>  gcc/testsuite/gcc.target/arm/lround-vcvt_1.c |  2 +-
>  gcc/testsuite/gcc.target/arm/vrinta-ce.c     |  2 +-
>  gcc/testsuite/lib/target-supports.exp        | 46 +++++++++++++++-----
>  5 files changed, 38 insertions(+), 16 deletions(-)
>
> --
> 2.51.1
>

Reply via email to