This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit c90cf2aa1f62fb92e5d6dc1f3db7cd0188299ac2
Author:     Andreas Rheinhardt <[email protected]>
AuthorDate: Wed Mar 18 10:39:33 2026 +0100
Commit:     Andreas Rheinhardt <[email protected]>
CommitDate: Wed Mar 18 18:04:44 2026 +0100

    avcodec/x86/rv34dsp: Port ff_rv34_idct_dc_noround_mmxext to sse2
    
    No change in benchmarks here.
    
    Reviewed-by: Lynne <[email protected]>
    Signed-off-by: Andreas Rheinhardt <[email protected]>
---
 libavcodec/x86/rv34dsp.asm    | 12 +++++-------
 libavcodec/x86/rv34dsp_init.c |  8 ++++----
 tests/checkasm/rv34dsp.c      |  2 +-
 3 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/libavcodec/x86/rv34dsp.asm b/libavcodec/x86/rv34dsp.asm
index 01a3d6f590..52d2497007 100644
--- a/libavcodec/x86/rv34dsp.asm
+++ b/libavcodec/x86/rv34dsp.asm
@@ -44,16 +44,14 @@ SECTION .text
     sar    %1, 10
 %endmacro
 
-INIT_MMX mmxext
-cglobal rv34_idct_dc_noround, 1, 2, 0
+INIT_XMM sse2
+cglobal rv34_idct_dc_noround, 1, 2, 1
     movsx   r1, word [r0]
     IDCT_DC_NOROUND r1
     movd    m0, r1d
-    pshufw  m0, m0, 0
-    movq    [r0+ 0], m0
-    movq    [r0+ 8], m0
-    movq    [r0+16], m0
-    movq    [r0+24], m0
+    SPLATW  m0, m0
+    mova    [r0+ 0], m0
+    mova    [r0+16], m0
     RET
 
 ; Load coeffs and perform row transform
diff --git a/libavcodec/x86/rv34dsp_init.c b/libavcodec/x86/rv34dsp_init.c
index caa5c2d653..c4dcae929a 100644
--- a/libavcodec/x86/rv34dsp_init.c
+++ b/libavcodec/x86/rv34dsp_init.c
@@ -24,8 +24,7 @@
 #include "libavutil/x86/cpu.h"
 #include "libavcodec/rv34dsp.h"
 
-void ff_rv34_idct_dc_mmxext(int16_t *block);
-void ff_rv34_idct_dc_noround_mmxext(int16_t *block);
+void ff_rv34_idct_dc_noround_sse2(int16_t *block);
 void ff_rv34_idct_dc_add_sse2(uint8_t *dst, ptrdiff_t stride, int dc);
 void ff_rv34_idct_dc_add_sse4(uint8_t *dst, ptrdiff_t stride, int dc);
 void ff_rv34_idct_add_mmxext(uint8_t *dst, ptrdiff_t stride, int16_t *block);
@@ -35,11 +34,12 @@ av_cold void ff_rv34dsp_init_x86(RV34DSPContext* c)
     int cpu_flags = av_get_cpu_flags();
 
     if (EXTERNAL_MMXEXT(cpu_flags)) {
-        c->rv34_inv_transform_dc = ff_rv34_idct_dc_noround_mmxext;
         c->rv34_idct_add         = ff_rv34_idct_add_mmxext;
     }
-    if (EXTERNAL_SSE2(cpu_flags))
+    if (EXTERNAL_SSE2(cpu_flags)) {
+        c->rv34_inv_transform_dc = ff_rv34_idct_dc_noround_sse2;
         c->rv34_idct_dc_add = ff_rv34_idct_dc_add_sse2;
+    }
     if (EXTERNAL_SSE4(cpu_flags))
         c->rv34_idct_dc_add = ff_rv34_idct_dc_add_sse4;
 }
diff --git a/tests/checkasm/rv34dsp.c b/tests/checkasm/rv34dsp.c
index 0d4716d2ad..5703ba9b82 100644
--- a/tests/checkasm/rv34dsp.c
+++ b/tests/checkasm/rv34dsp.c
@@ -34,7 +34,7 @@
     } while (0)
 
 static void test_rv34_inv_transform_dc(RV34DSPContext *s) {
-    declare_func_emms(AV_CPU_FLAG_MMX, void, int16_t *block);
+    declare_func(void, int16_t *block);
 
     if (check_func(s->rv34_inv_transform_dc, "rv34_inv_transform_dc")) {
         LOCAL_ALIGNED_16(int16_t, p1, [BUF_SIZE]);

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to