From 61e3cccd367a1daf4aedffa65f5be038aa5cebe1 Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Date: Mon, 20 Jun 2022 03:07:41 +0200
Subject: [PATCH] avcodec/x86/dcadsp: Remove obsolete SSE function

The only systems which benefit from ff_lfe_fir0_float_sse are truely
ancient 32bit x86s as all other systems use at least the SSE2 versions
(this includes all x64 cpus (which is why this code is restricted
to x86-32)).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavcodec/x86/dcadsp.asm    | 17 ++---------------
 libavcodec/x86/dcadsp_init.c |  3 ---
 2 files changed, 2 insertions(+), 18 deletions(-)

diff --git a/libavcodec/x86/dcadsp.asm b/libavcodec/x86/dcadsp.asm
index 055361a7651..de9fd6f346a 100644
--- a/libavcodec/x86/dcadsp.asm
+++ b/libavcodec/x86/dcadsp.asm
@@ -42,22 +42,13 @@ cglobal lfe_fir0_float, 4, 6, 12 + cpuflag(fma3)*4, samples, lfe, coeff, nblocks
     cvtdq2ps  m5, [lfeq   ]
     shufps    m7, m4, m4, q0123
     shufps    m6, m5, m5, q0123
-%elif cpuflag(sse2)
+%else
     movu      m4, [lfeq+16]
     movu      m5, [lfeq   ]
     cvtdq2ps  m4, m4
     cvtdq2ps  m5, m5
     pshufd    m7, m4, q0123
     pshufd    m6, m5, q0123
-%else
-    cvtpi2ps  m4, [lfeq+16]
-    cvtpi2ps  m0, [lfeq+24]
-    cvtpi2ps  m5, [lfeq   ]
-    cvtpi2ps  m1, [lfeq+8 ]
-    shufps    m4, m0, q1010
-    shufps    m5, m1, q1010
-    shufps    m7, m4, m4, q0123
-    shufps    m6, m5, m5, q0123
 %endif
 
 .inner_loop:
@@ -206,10 +197,6 @@ cglobal lfe_fir0_float, 4, 6, 12 + cpuflag(fma3)*4, samples, lfe, coeff, nblocks
     RET
 %endmacro
 
-%if ARCH_X86_32
-INIT_XMM sse
-LFE_FIR0_FLOAT
-%endif
 INIT_XMM sse2
 LFE_FIR0_FLOAT
 %if HAVE_AVX_EXTERNAL
@@ -235,7 +222,7 @@ cglobal lfe_fir1_float, 4, 6, 10, samples, lfe, coeff, nblocks, cnt1, cnt2
 %if cpuflag(avx)
     cvtdq2ps  m4, [lfeq]
     shufps    m5, m4, m4, q0123
-%elif cpuflag(sse2)
+%else
     movu      m4, [lfeq]
     cvtdq2ps  m4, m4
     pshufd    m5, m4, q0123
diff --git a/libavcodec/x86/dcadsp_init.c b/libavcodec/x86/dcadsp_init.c
index fc10fb8bc5d..0c78dd1c9ef 100644
--- a/libavcodec/x86/dcadsp_init.c
+++ b/libavcodec/x86/dcadsp_init.c
@@ -27,7 +27,6 @@ void ff_lfe_fir0_float_##opt(float *pcm_samples, int32_t *lfe_samples,         \
 void ff_lfe_fir1_float_##opt(float *pcm_samples, int32_t *lfe_samples,         \
                              const float *filter_coeff, ptrdiff_t npcmblocks);
 
-LFE_FIR_FLOAT_FUNC(sse)
 LFE_FIR_FLOAT_FUNC(sse2)
 LFE_FIR_FLOAT_FUNC(sse3)
 LFE_FIR_FLOAT_FUNC(avx)
@@ -37,8 +36,6 @@ av_cold void ff_dcadsp_init_x86(DCADSPContext *s)
 {
     int cpu_flags = av_get_cpu_flags();
 
-    if (ARCH_X86_32 && EXTERNAL_SSE(cpu_flags))
-        s->lfe_fir_float[0] = ff_lfe_fir0_float_sse;
     if (EXTERNAL_SSE2(cpu_flags))
         s->lfe_fir_float[0] = ff_lfe_fir0_float_sse2;
     if (EXTERNAL_SSE3(cpu_flags))
-- 
GitLab