This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit 10232fdd710cd15670119c71375d7d64355cde40 Author: Andreas Rheinhardt <[email protected]> AuthorDate: Sun Jul 5 20:41:52 2026 +0200 Commit: Andreas Rheinhardt <[email protected]> CommitDate: Sun Jul 12 23:46:56 2026 +0200 avcodec/x86/vp9lpf: Don't do work twice max(abs(p1-p0),abs(q1-q0)) is currently computed twice. Stop doing so. This saves 1681B of .text and gives a small performance boost. Signed-off-by: Andreas Rheinhardt <[email protected]> --- libavcodec/x86/vp9lpf.asm | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/libavcodec/x86/vp9lpf.asm b/libavcodec/x86/vp9lpf.asm index 8509b61ebc..8ccba1f09b 100644 --- a/libavcodec/x86/vp9lpf.asm +++ b/libavcodec/x86/vp9lpf.asm @@ -616,9 +616,9 @@ cglobal vp9_loop_filter_%1_%2_ %+ mmsize, 2, 6, 16, %3 + %4 + %%ext, dst, stride ABSSUB m1, rp2, rp1, m7 ; m1 = abs(p2-p1) pmaxub m5, m1 ABSSUB m1, rp1, rp0, m7 ; m1 = abs(p1-p0) - pmaxub m5, m1 - ABSSUB m1, rq0, rq1, m7 ; m1 = abs(q1-q0) - pmaxub m5, m1 + ABSSUB m4, rq0, rq1, m7 ; m1 = abs(q1-q0) + pmaxub m4, m1 + pmaxub m5, m4 ABSSUB m1, rq1, rq2, m7 ; m1 = abs(q2-q1) pmaxub m5, m1 ABSSUB m1, rq2, rq3, m7 ; m1 = abs(q3-q2) @@ -636,11 +636,11 @@ cglobal vp9_loop_filter_%1_%2_ %+ mmsize, 2, 6, 16, %3 + %4 + %%ext, dst, stride SWAP 1, 3 pxor m3, [pb_ff] - ; (m0: pb_80, m3: fm, m8..15: p3 p2 p1 p0 q0 q1 q2 q3) + ; (m0: pb_80, m3: fm, m4: max(abs(q1 - q0), abs(p1 - p0)) + ; m8..15: p3 p2 p1 p0 q0 q1 q2 q3) ; calc flat8in (if not 44_16) and hev masks %if %2 != 44 && %2 != 4 mova m6, [pb_81] ; [1 1 1 1 ...] ^ 0x80 - ABSSUB m2, rp1, rp0, m5 ; abs(p1 - p0) %if %2 <= 16 %if cpuflag(ssse3) pxor m5, m5 @@ -650,8 +650,6 @@ cglobal vp9_loop_filter_%1_%2_ %+ mmsize, 2, 6, 16, %3 + %4 + %%ext, dst, stride movd m7, Hd SPLATB_MIX m7 %endif - ABSSUB m4, rq1, rq0, m5 ; abs(q1 - q0) - pmaxub m4, m2 ; max(abs(q1 - q0), abs(p1 - p0)) ABSSUB m2, rp2, rp0, m5 ; abs(p2 - p0) pxor m7, m0 por m2, m4 @@ -664,29 +662,26 @@ cglobal vp9_loop_filter_%1_%2_ %+ mmsize, 2, 6, 16, %3 + %4 + %%ext, dst, stride ABSSUB m1, rq3, rq0, m5 ; abs(q3 - q0) por m2, m1 CMP_GT m2, m6, m0 ; flat8in - SWAP 0, 4 pxor m2, [pb_ff] %if %2 == 84 || %2 == 48 pand m2, [mask_mix%2] %endif %else - mova m6, [pb_80] %if %2 == 44 movd m7, Hd SPLATB_MIX m7 %else %if cpuflag(ssse3) - pxor m0, m0 + pxor m5, m5 %endif - SPLATB_REG m7, H, m0 ; H H H H ... + SPLATB_REG m7, H, m5 ; H H H H ... %endif - pxor m7, m6 - ABSSUB m0, rp1, rp0, m1 ; abs(p1 - p0) - ABSSUB m4, rq1, rq0, m1 ; abs(q1 - q0) - pmaxub m0, m4 ; max(abs(p1 - p0), abs(q1 - q0)) - pxor m0, m6 - pcmpgtb m0, m7 ; max > H; hev final value + pxor m4, m0 + pxor m7, m0 + pcmpgtb m4, m7 ; max > H; hev final value + SWAP 0, 6 %endif + SWAP 0, 4 %if %2 == 16 ; (m0: hev, m2: flat8in, m3: fm, m6: pb_81, m9..15: p2 p1 p0 q0 q1 q2 q3) _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
