diff mbox series

[FFmpeg-devel,2/2] aarch64: remove VFP feature check

Message ID 20230714163448.31727-2-remi@remlab.net
State Accepted
Commit f03223495385f64e11b29b5a51fcef2a93627184
Headers show
Series [FFmpeg-devel,1/2] lavc/aarch64: remove bogus HAVE_VFP guard | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Rémi Denis-Courmont July 14, 2023, 4:34 p.m. UTC
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(-)

Comments

Martin Storsjö July 14, 2023, 6:18 p.m. UTC | #1
On Fri, 14 Jul 2023, Rémi Denis-Courmont wrote:

> 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(-)

LGTM for both patches.

// Martin
diff mbox series

Patch

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;