[x265] [PATCH 264 of 307] x86: AVX512 Clean up of luma_hps and chroma_hps

mythreyi at multicorewareinc.com mythreyi at multicorewareinc.com
Sat Apr 7 04:34:22 CEST 2018


# HG changeset patch
# User Jayashri Murugan <jayashri at multicorewareinc.com>
# Date 1513231602 -19800
#      Thu Dec 14 11:36:42 2017 +0530
# Node ID 0b38182facb66543adfbf9664cda085f7e641327
# Parent  1480076a7bdda5ca31776adf31c087268f232107
x86: AVX512 Clean up of luma_hps and chroma_hps

diff -r 1480076a7bdd -r 0b38182facb6 source/common/x86/ipfilter16.asm
--- a/source/common/x86/ipfilter16.asm	Thu Dec 14 10:52:59 2017 +0530
+++ b/source/common/x86/ipfilter16.asm	Thu Dec 14 11:36:42 2017 +0530
@@ -6865,8 +6865,8 @@
 %if ARCH_X86_64 == 1
 INIT_ZMM avx512
 cglobal interp_4tap_horiz_ps_32x%1, 4,7,9
-    add             r1d, r1d
-    add             r3d, r3d
+    shl             r1d, 1
+    shl             r3d, 1
     mov             r4d, r4m
     mov             r5d, r5m
 %ifdef PIC
@@ -7063,8 +7063,8 @@
 %if ARCH_X86_64 == 1
 INIT_ZMM avx512
 cglobal interp_4tap_horiz_ps_64x%1, 4,7,9
-    add             r1d, r1d
-    add             r3d, r3d
+    shl             r1d, 1
+    shl             r3d, 1
     mov             r4d, r4m
     mov             r5d, r5m
 %ifdef PIC
@@ -7159,8 +7159,8 @@
 %if ARCH_X86_64 == 1
 INIT_ZMM avx512
 cglobal interp_4tap_horiz_ps_16x%1, 4,7,9
-    add             r1d, r1d
-    add             r3d, r3d
+    shl             r1d, 1
+    shl             r3d, 1
     mov             r4d, r4m
     mov             r5d, r5m
 %ifdef PIC
@@ -7341,8 +7341,8 @@
 %if ARCH_X86_64 == 1
 INIT_ZMM avx512
 cglobal interp_4tap_horiz_ps_48x64, 4,7,9
-    add             r1d, r1d
-    add             r3d, r3d
+    shl             r1d, 1
+    shl             r3d, 1
     mov             r4d, r4m
     mov             r5d, r5m
 
@@ -7454,8 +7454,8 @@
 %macro IPFILTER_CHROMA_PS_AVX512_8xN 1
 INIT_ZMM avx512
 cglobal interp_4tap_horiz_ps_8x%1, 4,9,9
-    add             r1d, r1d
-    add             r3d, r3d
+    shl             r1d, 1
+    shl             r3d, 1
     mov             r4d, r4m
     mov             r5d, r5m
 
@@ -7680,8 +7680,8 @@
 %macro IPFILTER_CHROMA_PS_AVX512_24xN 1
 INIT_ZMM avx512
 cglobal interp_4tap_horiz_ps_24x%1, 4,9,9
-    add             r1d, r1d
-    add             r3d, r3d
+    shl             r1d, 1
+    shl             r3d, 1
     mov             r4d, r4m
     mov             r5d, r5m
 
@@ -10560,27 +10560,28 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
+
     paddd           m8,       m11
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
     pmaddwd         m13,      m3
     pmaddwd         m10,      m2
     paddd           m10,      m13
+
     paddd           m9,       m10
     paddd           m9,       m6
     psrad           m9,       INTERP_SHIFT_PS
@@ -10595,27 +10596,28 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
+
     paddd           m8,       m11
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
     pmaddwd         m12,      m13,       m3
     pmaddwd         m14,      m10,       m2
     paddd           m12,      m14
+
     paddd           m9,       m12
     paddd           m9,       m6
     psrad           m9,       INTERP_SHIFT_PS
@@ -10632,27 +10634,28 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
+
     paddd           m8,       m11
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
     pmaddwd         m13,      m3
     pmaddwd         m10,      m2
     paddd           m10,      m13
+
     paddd           m9,       m10
     paddd           m9,       m6
     psrad           m9,       INTERP_SHIFT_PS
@@ -10665,8 +10668,8 @@
 %macro IPFILTER_LUMA_PS_AVX512_32xN 1
 INIT_ZMM avx512
 cglobal interp_8tap_horiz_ps_32x%1, 4,7,15
-    add              r1d,        r1d
-    add              r3d,        r3d
+    shl              r1d,        1
+    shl              r3d,        1
     mov              r4d,        r4m
     mov              r5d,        r5m
     shl              r4d,        6
@@ -10730,14 +10733,47 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
+    pmaddwd         m11,      m12,       m3
+    pmaddwd         m14,      m9,        m2
+    paddd           m11,      m14
+
+    paddd           m8,       m11
+    paddd           m8,       m6
+    psrad           m8,       INTERP_SHIFT_PS
+
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
+    pmaddwd         m9,       m0
+    pmaddwd         m12,      m1
+    paddd           m9,       m12
+    pmaddwd         m13,      m3
+    pmaddwd         m10,      m2
+    paddd           m10,      m13
+
+    paddd           m9,       m10
+    paddd           m9,       m6
+    psrad           m9,       INTERP_SHIFT_PS
+
+    packssdw        m8,       m9
+    pshufb          m8,       m7
+    movu            [r2],     m8
+
+    movu            m8,       [r0 + mmsize]
+    movu            m9,       [r0 + mmsize + 8]
+    movu            m10,      [r0 + mmsize + 16]
+
+    pshufb          m11,      m8,        m5
+    pshufb          m8,       m4
+    pmaddwd         m8,       m0
+    pmaddwd         m11,      m1
+    paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
@@ -10745,6 +10781,8 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -10757,22 +10795,19 @@
 
     packssdw        m8,       m9
     pshufb          m8,       m7
-    movu            [r2],     m8
-
-    movu            m8,       [r0 + mmsize]
-    movu            m9,       [r0 + mmsize + 8]
-    movu            m10,      [r0 + mmsize + 16]
+    movu            [r2 + mmsize],       m8
+
+    movu            m8,       [r0 + r1]
+    movu            m9,       [r0 + r1 + 8]
+    movu            m10,      [r0 + r1 + 16]
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
@@ -10780,6 +10815,79 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
+    pmaddwd         m9,       m0
+    pmaddwd         m12,       m1
+    paddd           m9,       m12
+    pmaddwd         m12,       m13,      m3
+    pmaddwd         m14,       m10,      m2
+    paddd           m12,       m14
+    paddd           m9,       m12
+    paddd           m9,       m6
+    psrad           m9,       INTERP_SHIFT_PS
+
+    packssdw        m8,       m9
+    pshufb          m8,       m7
+    movu            [r2 + r3],m8
+
+    movu            m8,       [r0 + r1 + mmsize]
+    movu            m9,       [r0 + r1 + mmsize + 8]
+    movu            m10,      [r0 + r1 + mmsize + 16]
+
+    pshufb          m11,      m8,        m5
+    pshufb          m8,       m4
+    pmaddwd         m8,       m0
+    pmaddwd         m11,      m1
+    paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
+    pmaddwd         m11,      m12,       m3
+    pmaddwd         m14,      m9,        m2
+    paddd           m11,      m14
+    paddd           m8,       m11
+    paddd           m8,       m6
+    psrad           m8,       INTERP_SHIFT_PS
+
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
+    pmaddwd         m9,       m0
+    pmaddwd         m12,      m1
+    paddd           m9,       m12
+    pmaddwd         m12,      m13,       m3
+    pmaddwd         m14,      m10,       m2
+    paddd           m12,      m14
+    paddd           m9,       m12
+    paddd           m9,       m6
+    psrad           m9,       INTERP_SHIFT_PS
+
+    packssdw        m8,       m9
+    pshufb          m8,       m7
+    movu            [r2 + r3 + mmsize],  m8
+%endmacro
+
+%macro PROCESS_IPFILTER_LUMA_PS_64x1_AVX512 0
+
+    movu            m8,       [r0]
+    movu            m9,       [r0 + 8]
+    movu            m10,      [r0 + 16]
+
+    pshufb          m11,      m8,        m5
+    pshufb          m8,       m4
+    pmaddwd         m8,       m0
+    pmaddwd         m11,      m1
+    paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
+    pmaddwd         m11,      m12,       m3
+    pmaddwd         m14,      m9,        m2
+    paddd           m11,      m14
+    paddd           m8,       m11
+    paddd           m8,       m6
+    psrad           m8,       INTERP_SHIFT_PS
+
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -10792,22 +10900,19 @@
 
     packssdw        m8,       m9
     pshufb          m8,       m7
-    movu            [r2 + mmsize],       m8
-
-    movu            m8,       [r0 + r1]
-    movu            m9,       [r0 + r1 + 8]
-    movu            m10,      [r0 + r1 + 16]
+    movu            [r2],     m8
+
+    movu            m8,       [r0 + mmsize]
+    movu            m9,       [r0 + mmsize + 8]
+    movu            m10,      [r0 + mmsize + 16]
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
@@ -10815,79 +10920,8 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
-    pmaddwd         m9,       m0
-    pmaddwd         m12,       m1
-    paddd           m9,       m12
-    pmaddwd         m12,       m13,      m3
-    pmaddwd         m14,       m10,      m2
-    paddd           m12,       m14
-    paddd           m9,       m12
-    paddd           m9,       m6
-    psrad           m9,       INTERP_SHIFT_PS
-
-    packssdw        m8,       m9
-    pshufb          m8,       m7
-    movu            [r2 + r3],m8
-
-    movu            m8,       [r0 + r1 + mmsize]
-    movu            m9,       [r0 + r1 + mmsize + 8]
-    movu            m10,      [r0 + r1 + mmsize + 16]
-
-    pshufb          m11,      m8,        m5
-    pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
     pshufb          m13,      m10,       m5
     pshufb          m10,      m4
-
-    pmaddwd         m8,       m0
-    pmaddwd         m11,      m1
-    paddd           m8,       m11
-    pmaddwd         m11,      m12,       m3
-    pmaddwd         m14,      m9,        m2
-    paddd           m11,      m14
-    paddd           m8,       m11
-    paddd           m8,       m6
-    psrad           m8,       INTERP_SHIFT_PS
-
-    pmaddwd         m9,       m0
-    pmaddwd         m12,      m1
-    paddd           m9,       m12
-    pmaddwd         m12,      m13,       m3
-    pmaddwd         m14,      m10,       m2
-    paddd           m12,      m14
-    paddd           m9,       m12
-    paddd           m9,       m6
-    psrad           m9,       INTERP_SHIFT_PS
-
-    packssdw        m8,       m9
-    pshufb          m8,       m7
-    movu            [r2 + r3 + mmsize],  m8
-%endmacro
-
-%macro PROCESS_IPFILTER_LUMA_PS_64x1_AVX512 0
-
-    movu            m8,       [r0]
-    movu            m9,       [r0 + 8]
-    movu            m10,      [r0 + 16]
-
-    pshufb          m11,      m8,        m5
-    pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
-    pmaddwd         m8,       m0
-    pmaddwd         m11,      m1
-    paddd           m8,       m11
-    pmaddwd         m11,      m12,       m3
-    pmaddwd         m14,      m9,        m2
-    paddd           m11,      m14
-    paddd           m8,       m11
-    paddd           m8,       m6
-    psrad           m8,       INTERP_SHIFT_PS
-
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -10900,49 +10934,14 @@
 
     packssdw        m8,       m9
     pshufb          m8,       m7
-    movu            [r2],     m8
-
-    movu            m8,       [r0 + mmsize]
-    movu            m9,       [r0 + mmsize + 8]
-    movu            m10,      [r0 + mmsize + 16]
-
-    pshufb          m11,      m8,        m5
-    pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
-    pmaddwd         m8,       m0
-    pmaddwd         m11,      m1
-    paddd           m8,       m11
-    pmaddwd         m11,      m12,       m3
-    pmaddwd         m14,      m9,        m2
-    paddd           m11,      m14
-    paddd           m8,       m11
-    paddd           m8,       m6
-    psrad           m8,       INTERP_SHIFT_PS
-
-    pmaddwd         m9,       m0
-    pmaddwd         m12,      m1
-    paddd           m9,       m12
-    pmaddwd         m13,      m3
-    pmaddwd         m10,      m2
-    paddd           m10,      m13
-    paddd           m9,       m10
-    paddd           m9,       m6
-    psrad           m9,       INTERP_SHIFT_PS
-
-    packssdw        m8,       m9
-    pshufb          m8,       m7
     movu            [r2 + mmsize],       m8
 %endmacro
 
 %macro IPFILTER_LUMA_PS_AVX512_64xN 1
 INIT_ZMM avx512
 cglobal interp_8tap_horiz_ps_64x%1, 4,7,15
-    add              r1d,        r1d
-    add              r3d,        r3d
+    shl              r1d,        1
+    shl              r3d,        1
     mov              r4d,        r4m
     mov              r5d,        r5m
     shl              r4d,        6
@@ -11008,14 +11007,11 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
@@ -11023,6 +11019,8 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -11047,14 +11045,11 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
@@ -11062,6 +11057,8 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -11088,14 +11085,11 @@
 
     pshufb          m11,      m8,             m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,             m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,            m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,             m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,            m3
     pmaddwd         m14,      m9,             m2
     paddd           m11,      m14
@@ -11103,6 +11097,8 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,            m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -11124,14 +11120,11 @@
 
     pshufb          ym11,     ym8,            ym5
     pshufb          ym8,      ym4
-    pshufb          ym12,     ym9,            ym5
-    pshufb          ym9,      ym4
-    pshufb          ym13,     ym10,           ym5
-    pshufb          ym10,     ym4
-
     pmaddwd         ym8,      ym0
     pmaddwd         ym11,     ym1
     paddd           ym8,      ym11
+    pshufb          ym12,     ym9,            ym5
+    pshufb          ym9,      ym4
     pmaddwd         ym11,     ym12,           ym3
     pmaddwd         ym14,     ym9,            ym2
     paddd           ym11,     ym14
@@ -11139,6 +11132,8 @@
     paddd           ym8,      ym6
     psrad           ym8,      INTERP_SHIFT_PS
 
+    pshufb          ym13,     ym10,           ym5
+    pshufb          ym10,     ym4
     pmaddwd         ym9,      ym0
     pmaddwd         ym12,     ym1
     paddd           ym9,      ym12
@@ -11158,8 +11153,8 @@
 %macro IPFILTER_LUMA_PS_AVX512_16xN 1
 INIT_ZMM avx512
 cglobal interp_8tap_horiz_ps_16x%1, 4,9,15
-    add              r1d,        r1d
-    add              r3d,        r3d
+    shl              r1d,        1
+    shl              r3d,        1
     mov              r4d,        r4m
     mov              r5d,        r5m
     shl              r4d,        6
@@ -11226,14 +11221,11 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
@@ -11241,6 +11233,8 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -11261,14 +11255,11 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
@@ -11276,6 +11267,8 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -11296,14 +11289,11 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
@@ -11311,6 +11301,8 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -11331,14 +11323,11 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
@@ -11346,6 +11335,8 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -11369,14 +11360,11 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
@@ -11384,6 +11372,8 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -11408,14 +11398,11 @@
 
     pshufb          m11,      m8,       m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,       m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,      m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,       m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,      m3
     pmaddwd         m14,      m9,       m2
     paddd           m11,      m14
@@ -11423,6 +11410,8 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,      m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -11446,14 +11435,11 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
@@ -11461,6 +11447,8 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -11481,14 +11469,11 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
@@ -11496,6 +11481,8 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -11516,14 +11503,11 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
@@ -11531,6 +11515,8 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -11554,14 +11540,11 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
@@ -11569,6 +11552,8 @@
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
@@ -11590,14 +11575,11 @@
 
     pshufb          ym11,      ym8,       ym5
     pshufb          ym8,       ym4
-    pshufb          ym12,      ym9,       ym5
-    pshufb          ym9,       ym4
-    pshufb          ym13,      ym10,      ym5
-    pshufb          ym10,      ym4
-
     pmaddwd         ym8,       ym0
     pmaddwd         ym11,      ym1
     paddd           ym8,       ym11
+    pshufb          ym12,      ym9,       ym5
+    pshufb          ym9,       ym4
     pmaddwd         ym11,      ym12,      ym3
     pmaddwd         ym14,      ym9,       ym2
     paddd           ym11,      ym14
@@ -11605,6 +11587,8 @@
     paddd           ym8,       ym6
     psrad           ym8,       INTERP_SHIFT_PS
 
+    pshufb          ym13,      ym10,      ym5
+    pshufb          ym10,      ym4
     pmaddwd         ym9,       ym0
     pmaddwd         ym12,      ym1
     paddd           ym9,       ym12
@@ -11623,8 +11607,8 @@
 %if ARCH_X86_64
 INIT_ZMM avx512
 cglobal interp_8tap_horiz_ps_48x64, 4,9,15
-    add              r1d,        r1d
-    add              r3d,        r3d
+    shl              r1d,        1
+    shl              r3d,        1
     mov              r4d,        r4m
     mov              r5d,        r5m
     shl              r4d,        6
@@ -11695,27 +11679,28 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
+
     paddd           m8,       m11
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
     pmaddwd         m13,      m3
     pmaddwd         m10,      m2
     paddd           m10,      m13
+
     paddd           m9,       m10
     paddd           m9,       m6
     psrad           m9,       INTERP_SHIFT_PS
@@ -11746,27 +11731,28 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,       m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,        m2
     paddd           m11,      m14
+
     paddd           m8,       m11
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,       m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
     pmaddwd         m13,      m3
     pmaddwd         m10,      m2
     paddd           m10,      m13
+
     paddd           m9,       m10
     paddd           m9,       m6
     psrad           m9,       INTERP_SHIFT_PS
@@ -11781,8 +11767,8 @@
 %if ARCH_X86_64
 INIT_ZMM avx512
 cglobal interp_8tap_horiz_ps_24x32, 4, 9, 15
-    add              r1d,        r1d
-    add              r3d,        r3d
+    shl              r1d,        1
+    shl              r3d,        1
     mov              r4d,        r4m
     mov              r5d,        r5m
     shl              r4d,        6
@@ -11851,27 +11837,28 @@
 
     pshufb          m11,      m8,         m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,         m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,        m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,         m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,       m2
     paddd           m11,      m14
+
     paddd           m8,       m11
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,        m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
     pmaddwd         m13,      m3
     pmaddwd         m10,      m2
     paddd           m10,      m13
+
     paddd           m9,       m10
     paddd           m9,       m6
     psrad           m9,       INTERP_SHIFT_PS
@@ -11899,27 +11886,28 @@
 
     pshufb          m11,      m8,        m5
     pshufb          m8,       m4
-    pshufb          m12,      m9,        m5
-    pshufb          m9,       m4
-    pshufb          m13,      m10,        m5
-    pshufb          m10,      m4
-
     pmaddwd         m8,       m0
     pmaddwd         m11,      m1
     paddd           m8,       m11
+    pshufb          m12,      m9,        m5
+    pshufb          m9,       m4
     pmaddwd         m11,      m12,       m3
     pmaddwd         m14,      m9,       m2
     paddd           m11,      m14
+
     paddd           m8,       m11
     paddd           m8,       m6
     psrad           m8,       INTERP_SHIFT_PS
 
+    pshufb          m13,      m10,        m5
+    pshufb          m10,      m4
     pmaddwd         m9,       m0
     pmaddwd         m12,      m1
     paddd           m9,       m12
     pmaddwd         m13,      m3
     pmaddwd         m10,      m2
     paddd           m10,      m13
+
     paddd           m9,       m10
     paddd           m9,       m6
     psrad           m9,       INTERP_SHIFT_PS
@@ -11934,8 +11922,8 @@
 %macro IPFILTER_LUMA_PS_AVX512_8xN 1
 INIT_ZMM avx512
 cglobal interp_8tap_horiz_ps_8x%1, 4, 9, 15
-    add              r1d,        r1d
-    add              r3d,        r3d
+    shl              r1d,        1
+    shl              r3d,        1
     mov              r4d,        r4m
     mov              r5d,        r5m
     shl              r4d,        6



More information about the x265-devel mailing list