diff mbox series

[FFmpeg-devel,1/1] lavc/ac3dsp: fix R-V CPU requirements

Message ID 20240727125152.55694-1-remi@remlab.net
State New
Headers show
Series [FFmpeg-devel,1/1] lavc/ac3dsp: fix R-V CPU requirements | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Rémi Denis-Courmont July 27, 2024, 12:51 p.m. UTC
It probably will not matter on any real hardware, but the Zbb optimisations
do not require Zba. And then, we need HAVE_RVV to build the RVV stuff.
---
 libavcodec/riscv/ac3dsp_init.c | 36 ++++++++++++++++++++--------------
 1 file changed, 21 insertions(+), 15 deletions(-)
diff mbox series

Patch

diff --git a/libavcodec/riscv/ac3dsp_init.c b/libavcodec/riscv/ac3dsp_init.c
index f66b6cac57..24b3881854 100644
--- a/libavcodec/riscv/ac3dsp_init.c
+++ b/libavcodec/riscv/ac3dsp_init.c
@@ -41,26 +41,32 @@  av_cold void ff_ac3dsp_init_riscv(AC3DSPContext *c)
 #if HAVE_RV
     int flags = av_get_cpu_flags();
 
-    if (flags & AV_CPU_FLAG_RVB_BASIC)
+    if (flags & AV_CPU_FLAG_RVB_BASIC) {
         c->ac3_exponent_min = ff_ac3_exponent_min_rvb;
-    if (flags & AV_CPU_FLAG_RVV_I32)
+        c->extract_exponents = ff_extract_exponents_rvb;
+    }
+
+# if HAVE_RVV
+    if (flags & AV_CPU_FLAG_RVV_I32) {
         c->ac3_exponent_min = ff_ac3_exponent_min_rvv;
 
-    if (flags & AV_CPU_FLAG_RVB_ADDR) {
-        if (flags & AV_CPU_FLAG_RVB_BASIC)
-            c->extract_exponents = ff_extract_exponents_rvb;
-# if HAVE_RV_ZVBB
-        if (flags & AV_CPU_FLAG_RV_ZVBB)
-            c->extract_exponents = ff_extract_exponents_rvvb;
+        if (flags & AV_CPU_FLAG_RVB) {
+#  if HAVE_RV_ZVBB
+            if (flags & AV_CPU_FLAG_RV_ZVBB)
+                c->extract_exponents = ff_extract_exponents_rvvb;
+#  endif
+            if (flags & AV_CPU_FLAG_RVV_F32) {
+                c->float_to_fixed24 = ff_float_to_fixed24_rvv;
+                c->sum_square_butterfly_float =
+                    ff_sum_square_butterfly_float_rvv;
+            }
+#  if __riscv_xlen >= 64
+            if (flags & AV_CPU_FLAG_RVV_I64)
+                c->sum_square_butterfly_int32 =
+                    ff_sum_square_butterfly_int32_rvv;
+#  endif
 # endif
-        if (flags & AV_CPU_FLAG_RVV_F32) {
-            c->float_to_fixed24 = ff_float_to_fixed24_rvv;
-            c->sum_square_butterfly_float = ff_sum_square_butterfly_float_rvv;
         }
-# if __riscv_xlen >= 64
-        if (flags & AV_CPU_FLAG_RVV_I64)
-            c->sum_square_butterfly_int32 = ff_sum_square_butterfly_int32_rvv;
-# endif
     }
 #endif
 }