ping?

On Sat, 5 Jul 2025 at 00:01, Christophe Lyon <christophe.l...@linaro.org> wrote:
>
> A few arm effective-targets call check_effective_target_arm32 even
> though they would force a -march=XXX flag which supports Arm and/or
> Thumb-2, thus making the arm32 check useless.  This has an impact when
> the toolchain is configured with a default -march or -mcpu which
> supports Thumb-1 only: in such a case, arm32 is false and we skip many
> tests, thus reducing coverage.
>
> This patch removes the call to check_effective_target_arm32 where it
> is useless, enabling about 2000 tests.
>
> gcc/testsuite/ChangeLog:
>
>         * lib/target-supports.exp
>         (check_effective_target_arm_neon_ok_nocache): Remove arm32 check.
>         (check_effective_target_arm_neon_fp16_ok_nocache): Likewise.
>         (check_effective_target_arm_neon_softfp_fp16_ok_nocache): Likewise.
>         (check_effective_target_arm_v8_neon_ok_nocache): Likewise.
>         (check_effective_target_arm_neonv2_ok_nocache): Likewise.
> ---
>  gcc/testsuite/lib/target-supports.exp | 69 ++++++++++++---------------
>  1 file changed, 31 insertions(+), 38 deletions(-)
>
> diff --git a/gcc/testsuite/lib/target-supports.exp 
> b/gcc/testsuite/lib/target-supports.exp
> index 956bc0bc7ca..2581c8d5b01 100644
> --- a/gcc/testsuite/lib/target-supports.exp
> +++ b/gcc/testsuite/lib/target-supports.exp
> @@ -5493,23 +5493,21 @@ proc add_options_for_arm_vfp3 { flags } {
>  proc check_effective_target_arm_neon_ok_nocache { } {
>      global et_arm_neon_flags
>      set et_arm_neon_flags ""
> -    if { [check_effective_target_arm32] } {
> -       foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon" "-mfpu=neon 
> -mfloat-abi=softfp" "-mfpu=neon -mfloat-abi=softfp -mcpu=unset 
> -march=armv7-a" "-mfloat-abi=hard" "-mfpu=neon -mfloat-abi=hard" "-mfpu=neon 
> -mfloat-abi=hard -mcpu=unset -march=armv7-a"} {
> -           if { [check_no_compiler_messages_nocache arm_neon_ok object {
> -               #include <arm_neon.h>
> -               int dummy;
> -               #ifndef __ARM_NEON__
> -               #error not NEON
> -               #endif
> -               /* Avoid the case where a test adds -mfpu=neon, but the 
> toolchain is
> -                  configured for -mcpu=arm926ej-s, for example.  */
> -               #if __ARM_ARCH < 7 || __ARM_ARCH_PROFILE == 'M'
> -               #error Architecture does not support NEON.
> -               #endif
> -           } "$flags"] } {
> -               set et_arm_neon_flags $flags
> -               return 1
> -           }
> +    foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon" "-mfpu=neon 
> -mfloat-abi=softfp" "-mfpu=neon -mfloat-abi=softfp -mcpu=unset 
> -march=armv7-a" "-mfloat-abi=hard" "-mfpu=neon -mfloat-abi=hard" "-mfpu=neon 
> -mfloat-abi=hard -mcpu=unset -march=armv7-a"} {
> +       if { [check_no_compiler_messages_nocache arm_neon_ok object {
> +           #include <arm_neon.h>
> +           int dummy;
> +           #ifndef __ARM_NEON__
> +           #error not NEON
> +           #endif
> +           /* Avoid the case where a test adds -mfpu=neon, but the toolchain 
> is
> +           configured for -mcpu=arm926ej-s, for example.  */
> +           #if __ARM_ARCH < 7 || __ARM_ARCH_PROFILE == 'M'
> +           #error Architecture does not support NEON.
> +           #endif
> +       } "$flags"] } {
> +           set et_arm_neon_flags $flags
> +           return 1
>         }
>      }
>
> @@ -5695,8 +5693,7 @@ proc check_effective_target_arm_neon_fp16_ok_nocache { 
> } {
>      global et_arm_neon_fp16_flags
>      global et_arm_neon_flags
>      set et_arm_neon_fp16_flags ""
> -    if { [check_effective_target_arm32]
> -        && [check_effective_target_arm_neon_ok] } {
> +    if { [check_effective_target_arm_neon_ok] } {
>         foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon-fp16"
>                        "-mfpu=neon-fp16 -mfloat-abi=softfp"
>                        "-mfp16-format=ieee"
> @@ -5734,8 +5731,7 @@ proc 
> check_effective_target_arm_neon_softfp_fp16_ok_nocache { } {
>      global et_arm_neon_softfp_fp16_flags
>      global et_arm_neon_flags
>      set et_arm_neon_softfp_fp16_flags ""
> -    if { [check_effective_target_arm32]
> -        && [check_effective_target_arm_neon_ok] } {
> +    if { [check_effective_target_arm_neon_ok] } {
>         foreach flags {"-mfpu=neon-fp16 -mfloat-abi=softfp"
>                        "-mfpu=neon-fp16 -mfloat-abi=softfp 
> -mfp16-format=ieee"} {
>             if { [check_no_compiler_messages_nocache arm_neon_softfp_fp16_ok 
> object {
> @@ -5871,22 +5867,20 @@ proc check_effective_target_arm_fp16_none_ok { } {
>  proc check_effective_target_arm_v8_neon_ok_nocache { } {
>      global et_arm_v8_neon_flags
>      set et_arm_v8_neon_flags ""
> -    if { [check_effective_target_arm32] } {
> -       foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon-fp-armv8" 
> "-mfpu=neon-fp-armv8 -mfloat-abi=softfp"} {
> -           if { [check_no_compiler_messages_nocache arm_v8_neon_ok object {
> -               #if __ARM_ARCH < 8
> -               #error not armv8 or later
> -               #endif
> -               #include "arm_neon.h"
> -               void
> -               foo ()
> -               {
> -                 __asm__ volatile ("vrintn.f32 q0, q0");
> -               }
> -           } "$flags -mcpu=unset -march=armv8-a"] } {
> -               set et_arm_v8_neon_flags $flags
> -               return 1
> +    foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon-fp-armv8" 
> "-mfpu=neon-fp-armv8 -mfloat-abi=softfp"} {
> +       if { [check_no_compiler_messages_nocache arm_v8_neon_ok object {
> +           #if __ARM_ARCH < 8
> +           #error not armv8 or later
> +           #endif
> +           #include "arm_neon.h"
> +           void
> +           foo ()
> +           {
> +               __asm__ volatile ("vrintn.f32 q0, q0");
>             }
> +       } "$flags -mcpu=unset -march=armv8-a"] } {
> +           set et_arm_v8_neon_flags $flags
> +           return 1
>         }
>      }
>
> @@ -5907,8 +5901,7 @@ proc check_effective_target_arm_neonv2_ok_nocache { } {
>      global et_arm_neonv2_flags
>      global et_arm_neon_flags
>      set et_arm_neonv2_flags ""
> -    if { [check_effective_target_arm32]
> -        && [check_effective_target_arm_neon_ok] } {
> +    if { [check_effective_target_arm_neon_ok] } {
>         foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon-vfpv4" 
> "-mfpu=neon-vfpv4 -mfloat-abi=softfp"} {
>             if { [check_no_compiler_messages_nocache arm_neonv2_ok object {
>                 #include "arm_neon.h"
> --
> 2.34.1
>

Reply via email to