This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit 3db7a55280c7af2a5897c6f9473cc5816ff37631 Author: Andreas Rheinhardt <[email protected]> AuthorDate: Mon Jul 27 00:21:24 2026 +0200 Commit: Andreas Rheinhardt <[email protected]> CommitDate: Sat Aug 1 16:50:06 2026 +0200 avcodec/x86/vc1dsp_loopfilter: Don't use MMX regs Up until now ff_vc1_v_loop_filter4_ssse3 used MMX registers despite being an SSSE3 function. Porting it to XMM registers didn't lead to any change in benchmarks here, but abides by the ABI (one function less that does not omit emms). Unfortunately the size of the function increased by 64B by this. Signed-off-by: Andreas Rheinhardt <[email protected]> --- libavcodec/x86/vc1dsp_loopfilter.asm | 9 ++++----- tests/checkasm/vc1dsp.c | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/libavcodec/x86/vc1dsp_loopfilter.asm b/libavcodec/x86/vc1dsp_loopfilter.asm index 819693e4a3..3a6af89f9e 100644 --- a/libavcodec/x86/vc1dsp_loopfilter.asm +++ b/libavcodec/x86/vc1dsp_loopfilter.asm @@ -78,7 +78,7 @@ SECTION .text PABSW m2, m5 %endif PABSW m4, m7 - PSHUFLW m6, m6, 0 + pshuflw m6, m6, 0 pminsw m3, m2 pcmpgtw m2, m4, m3 ; if (a2 < a0 || a1 < a0) %if %1 > 4 @@ -111,7 +111,7 @@ SECTION .text pand m6, m5 ; filt3 (C return value) ; each set of 4 pixels is not filtered if the 3rd is not - PSHUFLW m5, m6, q2222 + pshuflw m5, m6, q2222 %if cpuflag(ssse3) psraw m3, 8 %else @@ -238,14 +238,13 @@ cglobal vc1_h_loop_filter8, 3,5,8 VC1_H_LOOP_FILTER 8, r2 RET -INIT_MMX ssse3 +INIT_XMM ssse3 ; void ff_vc1_v_loop_filter4_ssse3(uint8_t *src, ptrdiff_t stride, int pq) -cglobal vc1_v_loop_filter4, 3,5,0 +cglobal vc1_v_loop_filter4, 3,5,8 START_V_FILTER VC1_V_LOOP_FILTER 4, d RET -INIT_XMM ssse3 ; void ff_vc1_h_loop_filter4_ssse3(uint8_t *src, ptrdiff_t stride, int pq) cglobal vc1_h_loop_filter4, 3,4,8 START_H_FILTER 4 diff --git a/tests/checkasm/vc1dsp.c b/tests/checkasm/vc1dsp.c index d4acf38e46..c8e8699e9f 100644 --- a/tests/checkasm/vc1dsp.c +++ b/tests/checkasm/vc1dsp.c @@ -354,7 +354,7 @@ static void check_loop_filter(void) for (size_t k = 0; k < FF_ARRAY_ELEMS(tests); ++k) { void (*func)(uint8_t *, ptrdiff_t, int) = *(void **)((intptr_t) &h + tests[k].offset); - declare_func_emms(AV_CPU_FLAG_MMX, void, uint8_t *, ptrdiff_t, int); + declare_func(void, uint8_t *, ptrdiff_t, int); if (check_func(func, "vc1dsp.%s", tests[k].name)) { for (int count = 1000; count > 0; --count) { int pq = rnd() % 31 + 1; _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
