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

Git pushed a commit to branch master
in repository ffmpeg.

commit ee83c175f817dd413f20d2453e4dc4eabd1e87f5
Author:     Andreas Rheinhardt <[email protected]>
AuthorDate: Fri Aug 7 03:19:03 2026 +0200
Commit:     Andreas Rheinhardt <[email protected]>
CommitDate: Sun Aug 9 17:23:06 2026 +0200

    avcodec/x86/ttadsp: Optimize updating dl[4..7]
    
    ttaencdsp old:
      filter_process_c:         15.0
      filter_process_ssse3:      9.0 ( 1.66x)
      filter_process_sse4:       6.9 ( 2.18x)
    
    ttaencdsp new:
      filter_process_c:         14.9
      filter_process_ssse3:      8.3 ( 1.79x)
      filter_process_sse4:       6.4 ( 2.32x)
    
    ttadsp old:
      filter_process_c:         14.7
      filter_process_ssse3:      8.7 ( 1.70x)
      filter_process_sse4:       6.6 ( 2.24x)
    
    ttadsp new:
      filter_process_c:         14.6
      filter_process_ssse3:      8.1 ( 1.81x)
      filter_process_sse4:       6.3 ( 2.30x)
    
    Reviewed-by: Lynne <[email protected]>
    Signed-off-by: Andreas Rheinhardt <[email protected]>
---
 libavcodec/x86/ttadsp.asm | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/libavcodec/x86/ttadsp.asm b/libavcodec/x86/ttadsp.asm
index fd98ccab34..d8e4406d53 100644
--- a/libavcodec/x86/ttadsp.asm
+++ b/libavcodec/x86/ttadsp.asm
@@ -107,6 +107,7 @@ cglobal tta%3_filter_process, 5,5,%2, qm, dx, dl, error, 
in, shift, round
     movd       m2, shiftm           ;
     movd       m0, [inq]            ;
     psrad      m4, m2               ;
+    psrldq     m1, 4                ; dl5,                 dl6,     dl7,   0
     psubd      m3, m0, m4           ;
     movd       [inq], m3            ; *in -= (sum >> filter->shift);
     movd       [errorq], m3         ; filter->error = *in;
@@ -116,19 +117,17 @@ cglobal tta%3_filter_process, 5,5,%2, qm, dx, dl, error, 
in, shift, round
 
     movd       m2, shiftm           ; *in += (sum >> filter->shift);
     psrad      m4, m2               ;
+    psrldq     m1, 4                ; dl5,                 dl6,     dl7,   0
     paddd      m0, m4               ;
     movd       [inq], m0            ;
 %endif
 
-    psrldq     m1, 4                ;
-    pslldq     m0, 12               ; filter->dl[4] = -filter->dl[5];
-    pshufd     m0, m0, 0xf0         ; filter->dl[5] = -filter->dl[6];
-    psubd      m0, m1               ; filter->dl[6] = *in - filter->dl[7];
-    psrldq     m1, m0, 4            ; filter->dl[7] = *in;
-    pshufd     m1, m1, 0xf4         ; filter->dl[5] += filter->dl[6];
-    paddd      m0, m1               ; filter->dl[4] += filter->dl[5];
-    psrldq     m1, 4                ;
-    paddd      m0, m1               ;
+    pshufd     m2, m1, q3321        ; dl6,                 dl7,       0,   0
+    pshufd     m0, m0, 0
+    paddd      m1, m2               ; dl5+dl6,         dl6+dl7,     dl7,   0
+    psrldq     m2, 4                ; dl7
+    paddd      m1, m2               ; dl5+dl6+dl7, dl5+dl6+dl7, dl6+dl7, dl7
+    psubd      m0, m1
     mova       [dlq + 0x10], m0     ;
     RET
 %endmacro

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

Reply via email to