[FFmpeg-cvslog] vp9/x86: slightly simplify 44/48/84/88 h stores.

Ronald S. Bultje git at videolan.org
Sat Dec 27 23:26:33 CET 2014


ffmpeg | branch: master | Ronald S. Bultje <rsbultje at gmail.com> | Fri Dec 19 22:18:42 2014 -0500| [e59bd089868603c09faa2893fe68b426c07b46b6] | committer: Ronald S. Bultje

vp9/x86: slightly simplify 44/48/84/88 h stores.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e59bd089868603c09faa2893fe68b426c07b46b6
---

 libavcodec/x86/vp9lpf.asm |   88 +++++++++++++++++++++------------------------
 1 file changed, 40 insertions(+), 48 deletions(-)

diff --git a/libavcodec/x86/vp9lpf.asm b/libavcodec/x86/vp9lpf.asm
index c62ac46..64d3b26 100644
--- a/libavcodec/x86/vp9lpf.asm
+++ b/libavcodec/x86/vp9lpf.asm
@@ -724,34 +724,34 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3, dst, stride, mstride, dst2, stri
     SBUTTERFLY  bw, 2, 3, 8
     SBUTTERFLY  wd, 0, 2, 8
     SBUTTERFLY  wd, 1, 3, 8
-    SBUTTERFLY  dq, 0, 4, 8
-    SBUTTERFLY  dq, 1, 5, 8
-    SBUTTERFLY  dq, 2, 6, 8
-    SBUTTERFLY  dq, 3, 7, 8
     movd  [P7], m0
-    punpckhqdq m0, m8
-    movd  [P6], m0
-    movd  [Q0], m1
-    punpckhqdq  m1, m9
-    movd  [Q1], m1
     movd  [P3], m2
-    punpckhqdq  m2, m10
-    movd  [P2], m2
+    movd  [Q0], m1
     movd  [Q4], m3
-    punpckhqdq m3, m11
+    psrldq  m0, 4
+    psrldq  m1, 4
+    psrldq  m2, 4
+    psrldq  m3, 4
+    movd  [P6], m0
+    movd  [P2], m2
+    movd  [Q1], m1
     movd  [Q5], m3
-    movd  [P5], m4
-    punpckhqdq m4, m12
-    movd  [P4], m4
-    movd  [Q2], m5
-    punpckhqdq m5, m13
-    movd  [Q3], m5
-    movd  [P1], m6
-    punpckhqdq m6, m14
-    movd  [P0], m6
-    movd  [Q6], m7
-    punpckhqdq m7, m8
-    movd  [Q7], m7
+    psrldq  m0, 4
+    psrldq  m1, 4
+    psrldq  m2, 4
+    psrldq  m3, 4
+    movd  [P5], m0
+    movd  [P1], m2
+    movd  [Q2], m1
+    movd  [Q6], m3
+    psrldq  m0, 4
+    psrldq  m1, 4
+    psrldq  m2, 4
+    psrldq  m3, 4
+    movd  [P4], m0
+    movd  [P0], m2
+    movd  [Q3], m1
+    movd  [Q7], m3
 %else
     ; the following code do a transpose of 8 full lines to 16 half
     ; lines (high part). It is inlined to avoid the need of a staging area
@@ -776,30 +776,22 @@ cglobal vp9_loop_filter_%1_%2_16, 2, 6, 16, %3, dst, stride, mstride, dst2, stri
     SBUTTERFLY  dq,  1,  5, 8
     SBUTTERFLY  dq,  2,  6, 8
     SBUTTERFLY  dq,  3,  7, 8
-    movh  [P7], m0
-    punpckhqdq m0, m8
-    movh  [P6], m0
-    movh  [Q0], m1
-    punpckhqdq  m1, m9
-    movh  [Q1], m1
-    movh  [P3], m2
-    punpckhqdq  m2, m10
-    movh  [P2], m2
-    movh  [Q4], m3
-    punpckhqdq m3, m11
-    movh  [Q5], m3
-    movh  [P5], m4
-    punpckhqdq m4, m12
-    movh  [P4], m4
-    movh  [Q2], m5
-    punpckhqdq m5, m13
-    movh  [Q3], m5
-    movh  [P1], m6
-    punpckhqdq m6, m14
-    movh  [P0], m6
-    movh  [Q6], m7
-    punpckhqdq m7, m8
-    movh  [Q7], m7
+    movh   [P7], m0
+    movhps [P6], m0
+    movh   [Q0], m1
+    movhps [Q1], m1
+    movh   [P3], m2
+    movhps [P2], m2
+    movh   [Q4], m3
+    movhps [Q5], m3
+    movh   [P5], m4
+    movhps [P4], m4
+    movh   [Q2], m5
+    movhps [Q3], m5
+    movh   [P1], m6
+    movhps [P0], m6
+    movh   [Q6], m7
+    movhps [Q7], m7
 %endif
 %endif
 



More information about the ffmpeg-cvslog mailing list