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]
