From daa55bb969994dd3241a98094fff2af8a65b821e Mon Sep 17 00:00:00 2001
From: Pascal Massimino <pascal.massimino@gmail.com>
Date: Tue, 9 Sep 2014 22:49:52 +0200
Subject: [PATCH] av_filter/x86/idet: use HADDD where appropriate

---
 libavfilter/x86/vf_idet.asm | 19 +++----------------
 1 file changed, 3 insertions(+), 16 deletions(-)

diff --git a/libavfilter/x86/vf_idet.asm b/libavfilter/x86/vf_idet.asm
index 4649cae..007e63d 100644
--- a/libavfilter/x86/vf_idet.asm
+++ b/libavfilter/x86/vf_idet.asm
@@ -69,10 +69,8 @@ cglobal idet_filter_line, 4, 5, 0, a, b, c, width, index
     CMP       widthd, indexd
     jg        .loop
 
-    mova      m0, m_sum
-    psrlq     m_sum, 0x20
-    paddd     m0, m_sum
-    movd      eax, m0
+    HADDD     m_sum, m0
+    movd      eax, m_sum
     RET
 %endmacro
 
@@ -123,18 +121,7 @@ cglobal idet_filter_line_16bit, 4, 5, 8, a, b, c, width, index
     paddd          m_sum, m5
     jl        .loop_16bit
 
-    mova      m2, m_sum
-%if mmsize == 16
-    psrldq    m2, 4
-    paddd     m_sum, m2
-    psrldq    m2, 4
-    paddd     m_sum, m2
-    psrldq    m2, 4
-    paddd     m_sum, m2
-%else
-    psrlq     m2, 32
-    paddd     m_sum, m2
-%endif
+    HADDD     m_sum, m2
     movd      eax, m_sum
     RET
 %endmacro
-- 
2.1.0.rc2.206.gedb03e5

