avcodec/x86/hevcdsp_init: fix SSE4 checks
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 6 May 2014 16:27:49 +0000 (18:27 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 6 May 2014 16:27:49 +0000 (18:27 +0200)
Found-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/x86/hevcdsp_init.c

index c7e1868..fcdb05a 100644 (file)
@@ -346,43 +346,31 @@ void ff_hevcdsp_init_x86(HEVCDSPContext *c, const int bit_depth)
     int mm_flags = av_get_cpu_flags();
 
     if (bit_depth == 8) {
-        if (EXTERNAL_MMX(mm_flags)) {
+        if (EXTERNAL_SSE4(mm_flags) && ARCH_X86_64) {
 
-            if (EXTERNAL_MMXEXT(mm_flags)) {
+            EPEL_LINKS(c->put_hevc_epel, 0, 0, pel_pixels,  8);
+            EPEL_LINKS(c->put_hevc_epel, 0, 1, epel_h,      8);
+            EPEL_LINKS(c->put_hevc_epel, 1, 0, epel_v,      8);
+            EPEL_LINKS(c->put_hevc_epel, 1, 1, epel_hv,     8);
 
-                if (EXTERNAL_SSSE3(mm_flags) && ARCH_X86_64) {
+            QPEL_LINKS(c->put_hevc_qpel, 0, 0, pel_pixels, 8);
+            QPEL_LINKS(c->put_hevc_qpel, 0, 1, qpel_h,     8);
+            QPEL_LINKS(c->put_hevc_qpel, 1, 0, qpel_v,     8);
+            QPEL_LINKS(c->put_hevc_qpel, 1, 1, qpel_hv,    8);
 
-                    EPEL_LINKS(c->put_hevc_epel, 0, 0, pel_pixels,  8);
-                    EPEL_LINKS(c->put_hevc_epel, 0, 1, epel_h,      8);
-                    EPEL_LINKS(c->put_hevc_epel, 1, 0, epel_v,      8);
-                    EPEL_LINKS(c->put_hevc_epel, 1, 1, epel_hv,     8);
-
-                    QPEL_LINKS(c->put_hevc_qpel, 0, 0, pel_pixels, 8);
-                    QPEL_LINKS(c->put_hevc_qpel, 0, 1, qpel_h,     8);
-                    QPEL_LINKS(c->put_hevc_qpel, 1, 0, qpel_v,     8);
-                    QPEL_LINKS(c->put_hevc_qpel, 1, 1, qpel_hv,    8);
-
-                }
-            }
         }
     } else if (bit_depth == 10) {
-        if (EXTERNAL_MMX(mm_flags)) {
-            if (EXTERNAL_MMXEXT(mm_flags) && ARCH_X86_64) {
-
-                if (EXTERNAL_SSSE3(mm_flags)) {
-
-                    EPEL_LINKS(c->put_hevc_epel, 0, 0, pel_pixels, 10);
-                    EPEL_LINKS(c->put_hevc_epel, 0, 1, epel_h,     10);
-                    EPEL_LINKS(c->put_hevc_epel, 1, 0, epel_v,     10);
-                    EPEL_LINKS(c->put_hevc_epel, 1, 1, epel_hv,    10);
+        if (EXTERNAL_SSE4(mm_flags) && ARCH_X86_64) {
 
-                    QPEL_LINKS(c->put_hevc_qpel, 0, 0, pel_pixels, 10);
-                    QPEL_LINKS(c->put_hevc_qpel, 0, 1, qpel_h,     10);
-                    QPEL_LINKS(c->put_hevc_qpel, 1, 0, qpel_v,     10);
-                    QPEL_LINKS(c->put_hevc_qpel, 1, 1, qpel_hv,    10);
-                }
+            EPEL_LINKS(c->put_hevc_epel, 0, 0, pel_pixels, 10);
+            EPEL_LINKS(c->put_hevc_epel, 0, 1, epel_h,     10);
+            EPEL_LINKS(c->put_hevc_epel, 1, 0, epel_v,     10);
+            EPEL_LINKS(c->put_hevc_epel, 1, 1, epel_hv,    10);
 
-            }
+            QPEL_LINKS(c->put_hevc_qpel, 0, 0, pel_pixels, 10);
+            QPEL_LINKS(c->put_hevc_qpel, 0, 1, qpel_h,     10);
+            QPEL_LINKS(c->put_hevc_qpel, 1, 0, qpel_v,     10);
+            QPEL_LINKS(c->put_hevc_qpel, 1, 1, qpel_hv,    10);
         }
     }
 }