"fp" "fp8" "fp8dot2" "fp8dot4" "fp8fma" "i8mm" "ls64" "lse" "lut"
"sb" "simd" "sve-b16b16" "sve" "sve2" "sve-sm4" "sve-aes" "sve-bitperm"
"sve-sha3" "f8f16mm" "f8f32mm" "sve-f16f32mm"
-}
-
-# 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-f8f16" "sme-f8f32"
"sme-b16b16" "sme-f16f16" "sme-i16i64" "sme" "sme2" "sme2p1"
"ssve-fp8dot2" "ssve-fp8dot4" "ssve-fp8fma" "sve-bfscale" "sme-lutv2"
}]
}
-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_sysreg_guarding_ok { } {
if { [istarget aarch64*-*-*] && [check_effective_target_elf] } {
return [check_no_compiler_messages aarch64_assembler object {