On 20/03/2025 16:15, Christophe Lyon wrote: > Many tests became unsupported on aarch64 when -mcpu=unset was added to > arm_v8_2a_fp16_neon_ok and arm_v8_2a_bf16_neon_ok effective targets, > because this flag is only supported on arm. > > Since these effective targets are used on arm and aarch64, the patch > adds -mcpu=unset on arm only, and restores "" on aarch64. > > This re-enables bf16 tests on aarch64, and I noticed > #PASS: 6838 -> 8290 > #UNSUPPORTED: 1491 -> 1030 in gcc.target/aarch64/advsimd-intrinsics > > gcc/testsuite/ > * lib/target-supports.exp > (check_effective_target_arm_v8_2a_fp16_neon_ok_nocache): Use > -mcpu=unset on arm only. > (check_effective_target_arm_v8_2a_bf16_neon_ok_nocache): Likewise.
I think my comments on patch 6 apply here too. R. > --- > gcc/testsuite/lib/target-supports.exp | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git a/gcc/testsuite/lib/target-supports.exp > b/gcc/testsuite/lib/target-supports.exp > index 09b16a14024..c2df22d2255 100644 > --- a/gcc/testsuite/lib/target-supports.exp > +++ b/gcc/testsuite/lib/target-supports.exp > @@ -6660,11 +6660,16 @@ proc check_effective_target_arm_v8_2a_fp16_scalar_ok > { } { > proc check_effective_target_arm_v8_2a_fp16_neon_ok_nocache { } { > global et_arm_v8_2a_fp16_neon_flags > set et_arm_v8_2a_fp16_neon_flags "" > + set cpu_unset "" > > if { ![istarget arm*-*-*] && ![istarget aarch64*-*-*] } { > return 0; > } > > + if { [istarget arm*-*-*] } { > + set cpu_unset "-mcpu=unset" > + } > + > # Iterate through sets of options to find the compiler flags that > # need to be added to the -march option. > foreach flags {"" "-mfpu=neon-fp-armv8" "-mfloat-abi=softfp" \ > @@ -6674,8 +6679,8 @@ proc > check_effective_target_arm_v8_2a_fp16_neon_ok_nocache { } { > #if !defined (__ARM_FEATURE_FP16_VECTOR_ARITHMETIC) > #error "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC not defined" > #endif > - } "$flags -mcpu=unset -march=armv8.2-a+fp16"] } { > - set et_arm_v8_2a_fp16_neon_flags "$flags -mcpu=unset > -march=armv8.2-a+fp16" > + } "$flags $cpu_unset -march=armv8.2-a+fp16"] } { > + set et_arm_v8_2a_fp16_neon_flags "$flags $cpu_unset > -march=armv8.2-a+fp16" > return 1 > } > } > @@ -6871,6 +6876,7 @@ proc add_options_for_arm_fp16fml_neon { flags } { > proc check_effective_target_arm_v8_2a_bf16_neon_ok_nocache { } { > global et_arm_v8_2a_bf16_neon_flags > set et_arm_v8_2a_bf16_neon_flags "" > + set cpu_unset "" > set fpu_auto "" > > if { ![istarget arm*-*-*] && ![istarget aarch64*-*-*] } { > @@ -6878,6 +6884,7 @@ proc > check_effective_target_arm_v8_2a_bf16_neon_ok_nocache { } { > } > > if { [istarget arm*-*-*] } { > + set cpu_unset "-mcpu=unset" > set fpu_auto "-mfpu=auto" > } > > @@ -6889,8 +6896,8 @@ proc > check_effective_target_arm_v8_2a_bf16_neon_ok_nocache { } { > #if !defined (__ARM_FEATURE_BF16_VECTOR_ARITHMETIC) > #error "__ARM_FEATURE_BF16_VECTOR_ARITHMETIC not defined" > #endif > - } "$flags -mcpu=unset -march=armv8.2-a+bf16"] } { > - set et_arm_v8_2a_bf16_neon_flags "$flags -mcpu=unset > -march=armv8.2-a+bf16" > + } "$flags $cpu_unset -march=armv8.2-a+bf16"] } { > + set et_arm_v8_2a_bf16_neon_flags "$flags $cpu_unset > -march=armv8.2-a+bf16" > return 1 > } > }