Spencer Abson <spencer.ab...@arm.com> writes: > GCC doesn't support SME without SVE2, so the -march=armv8-a+<ext> argument to > check_no_compiler_messages causes aarch64_asm_<ext>_ok to return zero for SME > and any <ext> that implies it. > > This patch changes the baseline architecure to armv9-a for these extensions. > > gcc/testsuite/ChangeLog: > > * lib/target-supports.exp: Split the extensions that require SME into > a separate set, and use armv9-a as their baseline.
OK, thanks. Richard > --- > gcc/testsuite/lib/target-supports.exp | 24 ++++++++++++++++++++++-- > 1 file changed, 22 insertions(+), 2 deletions(-) > > diff --git a/gcc/testsuite/lib/target-supports.exp > b/gcc/testsuite/lib/target-supports.exp > index e375b1ec02b..e8b403ca02c 100644 > --- a/gcc/testsuite/lib/target-supports.exp > +++ b/gcc/testsuite/lib/target-supports.exp > @@ -12524,8 +12524,14 @@ proc > check_effective_target_aarch64_gas_has_build_attributes { } { > set exts { > "bf16" "cmpbr" "crc" "crypto" "dotprod" "f32mm" "f64mm" "fp" "fp8" > "fp8dot2" "fp8dot4" "fp8fma" "i8mm" "ls64" "lse" "lut" "sb" "simd" > - "sme-b16b16" "sme-f16f16" "sme-i16i64" "sme" "sme2" "sme2p1" > "ssve-fp8dot2" > - "ssve-fp8dot4" "ssve-fp8fma" "sve-b16b16" "sve" "sve2" > + "sve-b16b16" "sve" "sve2" > +} > + > +# We don't support SME without SVE2, so we'll use armv9 as the base > +# archiecture for SME and the features that require it. > +set exts_sve2 { > + "sme-b16b16" "sme-f16f16" "sme-i16i64" "sme" "sme2" "sme2p1" > + "ssve-fp8dot2" "ssve-fp8dot4" "ssve-fp8fma" > } > > foreach { aarch64_ext } $exts { > @@ -12542,6 +12548,20 @@ foreach { aarch64_ext } $exts { > }] > } > > +foreach { aarch64_ext } $exts_sve2 { > + eval [string map [list FUNC $aarch64_ext] { > + proc check_effective_target_aarch64_asm_FUNC_ok { } { > + if { [istarget aarch64*-*-*] } { > + return [check_no_compiler_messages aarch64_FUNC_assembler > object { > + __asm__ (".arch_extension FUNC"); > + } "-march=armv9-a+FUNC"] > + } else { > + return 0 > + } > + } > + }] > +} > + > proc check_effective_target_aarch64_asm_sve2p1_ok { } { > if { [istarget aarch64*-*-*] } { > return [check_no_compiler_messages aarch64_sve2p1_assembler object {