From f03223495385f64e11b29b5a51fcef2a93627184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= Date: Fri, 14 Jul 2023 19:29:32 +0300 Subject: [PATCH] aarch64: remove VFP feature check This is not actually used for anything. The configure check causes the CPU feature flag to be set, but nothing consumes it at all. While AArch64 does have VFP, it is only used for the scalar C code. Conversely, it is still possible to disable VFP, by changing the C compiler flags as before (though that only makes sense for an hypothetical non-standard Armv8 platform without VFP). Note that this retains the "vfp" option flag, for backward compatibility and on the very remote but theoretically possible chance that FFmpeg actually makes use of it in the future. AV_CPU_FLAG_VFP is retained as it is actually used by AArch32. --- configure | 4 +--- libavutil/aarch64/cpu.c | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/configure b/configure index 0ab0761011..dab3fb9036 100755 --- a/configure +++ b/configure @@ -2668,7 +2668,7 @@ armv6t2_deps="arm" armv8_deps="aarch64" neon_deps_any="aarch64 arm" intrinsics_neon_deps="neon" -vfp_deps_any="aarch64 arm" +vfp_deps="arm" vfpv3_deps="vfp" setend_deps="arm" dotprod_deps="aarch64 neon" @@ -6058,7 +6058,6 @@ if enabled aarch64; then enabled armv8 && check_insn armv8 'prfm pldl1strm, [x0]' # internal assembler in clang 3.3 does not support this instruction enabled neon && check_insn neon 'ext v0.8B, v0.8B, v1.8B, #1' - enabled vfp && check_insn vfp 'fmadd d0, d0, d1, d2' archext_list="dotprod i8mm" enabled dotprod && check_archext_insn dotprod 'udot v0.4s, v0.16b, v0.16b' @@ -7705,7 +7704,6 @@ if enabled x86; then fi if enabled aarch64; then echo "NEON enabled ${neon-no}" - echo "VFP enabled ${vfp-no}" echo "DOTPROD enabled ${dotprod-no}" echo "I8MM enabled ${i8mm-no}" fi diff --git a/libavutil/aarch64/cpu.c b/libavutil/aarch64/cpu.c index a8cb301dd7..2803b31443 100644 --- a/libavutil/aarch64/cpu.c +++ b/libavutil/aarch64/cpu.c @@ -107,8 +107,7 @@ static int detect_flags(void) int ff_get_cpu_flags_aarch64(void) { int flags = AV_CPU_FLAG_ARMV8 * HAVE_ARMV8 | - AV_CPU_FLAG_NEON * HAVE_NEON | - AV_CPU_FLAG_VFP * HAVE_VFP; + AV_CPU_FLAG_NEON * HAVE_NEON; #ifdef __ARM_FEATURE_DOTPROD flags |= AV_CPU_FLAG_DOTPROD;