<div dir="ltr">I have given preference to direct results in-spite of half register because I think it can give more performance like mode 6 [row 1, row 3], mode 22 [row 1], mode 33 [row 0, row 1] are not calculated they are directly stored (just movd is enough). <div>
<br></div><div>Regards,</div><div>Praveen Tiwari</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Dec 2, 2013 at 8:30 PM, chen <span dir="ltr"><<a href="mailto:chenm003@163.com" target="_blank">chenm003@163.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="line-height:1.7;font-size:14px;font-family:arial"><div>Code is right, </div>
<div>there have some reduce register copy operator, the biggest problem is wasting half of register, eg: mode 4 and mode 32 can generate in same register.</div>
<div><br>At 2013-12-02 22:47:06,<a href="mailto:praveen@multicorewareinc.com" target="_blank">praveen@multicorewareinc.com</a> wrote:<div><div class="h5"><br>># HG changeset patch<br>># User Praveen Tiwari<br>># Date 1385995608 -19800<br>
># Node ID 1fccf1a770233907fefb0f5a47ed4e7c17223d4a<br>># Parent  df0b4f81609e611989c5b1743e7729adeb51cb01<br>>asm code for intra_allangs4x4 [all 34 modes]<br>><br>>diff -r df0b4f81609e -r 1fccf1a77023 source/common/x86/allangspred.asm<br>
>--- /dev/null       Thu Jan 01 00:00:00 1970 +0000<br>>+++ b/source/common/x86/allangspred.asm     Mon Dec 02 20:16:48 2013 +0530<br>>@@ -0,0 +1,920 @@<br>>+;*****************************************************************************<br>
>+;* Copyright (C) 2013 x265 project<br>>+;*<br>>+;* Authors: Praveen Kumar Tiwari <<a href="mailto:praveen@multicorewareinc.com" target="_blank">praveen@multicorewareinc.com</a>><br>>+;* <br>>+;* This program is free software; you can redistribute it and/or modify<br>
>+;* it under the terms of the GNU General Public License as published by<br>>+;* the Free Software Foundation; either version 2 of the License, or<br>>+;* (at your option) any later version.<br>>+;*<br>>+;* This program is distributed in the hope that it will be useful,<br>
>+;* but WITHOUT ANY WARRANTY; without even the implied warranty of<br>>+;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the<br>>+;* GNU General Public License for more details.<br>>+;*<br>>+;* You should have received a copy of the GNU General Public License<br>
>+;* along with this program; if not, write to the Free Software<br>>+;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111, USA.<br>>+;*<br>>+;* This program is also available under a commercial proprietary license.<br>
>+;* For more information, contact us at <a href="mailto:licensing@multicorewareinc.com" target="_blank">licensing@multicorewareinc.com</a>.<br>>+;*****************************************************************************/<br>
>+<br>>+%include "x86inc.asm"<br>>+<br>>+SECTION_RODATA 32<br>>+<br>>+tab_6_26:  db 6, 26, 6, 26, 6, 26, 6, 26, 6, 26, 6, 26, 6, 26, 0, 0<br>>+tab_12_20: db 12, 20, 12, 20, 12, 20, 12, 20, 12, 20, 12, 20, 12, 20, 12, 20<br>
>+tab_18_14: db 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14<br>>+tab_24_8:  db 24, 8, 24, 8, 24, 8, 24, 8, 24, 8, 24, 8, 24, 8, 24, 8<br>>+tab_11_21: db 11, 21, 11, 21, 11, 21, 11, 21, 11, 21, 11, 21, 11, 21, 11, 21<br>
>+tab_22_10: db 22, 10, 22, 10, 22, 10, 22, 10, 22, 10, 22, 10, 22, 10, 22, 10<br>>+tab_1_31:  db 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31<br>>+tab_15_17: db 15, 17, 15, 17, 15, 17, 15, 17, 15, 17, 15, 17, 15, 17, 15, 17<br>
>+tab_30_2:  db 30, 2, 30, 2, 30, 2, 30, 2, 30, 2, 30, 2, 30, 2, 30, 2<br>>+tab_13_19: db 13, 19, 13, 19, 13, 19, 13, 19, 13, 19, 13, 19, 13, 19, 13, 19<br>>+tab_28_4:  db 28, 4, 28, 4, 28, 4, 28, 4, 28, 4, 28, 4, 28, 4, 28, 4<br>
>+tab_19_13: db 19, 13, 19, 13, 19, 13, 19, 13, 19, 13, 19, 13, 19, 13, 19, 13<br>>+tab_25_7:  db 25, 7, 25, 7, 25, 7, 25, 7, 25, 7, 25, 7, 25, 7, 25, 7<br>>+tab_23_9:  db 23, 9, 23, 9, 23, 9, 23, 9, 23, 9, 23, 9, 23, 9, 23, 9<br>
>+tab_14_18: db 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18, 14, 18<br>>+tab_5_27:  db 5, 27, 5, 27, 5, 27, 5, 27, 5, 27, 5, 27, 5, 27, 5, 27<br>>+tab_27_5:  db 27, 5, 27, 5, 27, 5, 27, 5, 27, 5, 27, 5, 27, 5, 27, 5<br>
>+tab_17_15: db 17, 15, 17, 15, 17, 15, 17, 15, 17, 15, 17, 15, 17, 15, 17, 15<br>>+tab_26_6:  db 26, 6, 26, 6, 26, 6, 26, 6, 26, 6, 26, 6, 26, 6, 26, 6<br>>+tab_2_30:  db 2, 30, 2, 30, 2, 30, 2, 30, 2, 30, 2, 30, 2, 30, 2, 30<br>
>+tab_4_28:  db 4, 28, 4, 28, 4, 28, 4, 28, 4, 28, 4, 28, 4, 28, 4, 28<br>>+tab_8_24:  db 8, 24, 8, 24, 8, 24, 8, 24, 8, 24, 8, 24, 8, 24, 8, 24<br>>+tab_10_22: db 10, 22, 10, 22, 10, 22, 10, 22, 10, 22, 10, 22, 10, 22, 10, 22<br>
>+tab_20_12: db 20, 12, 20, 12, 20, 12, 20, 12, 20, 12, 20, 12, 20, 12, 20, 12<br>>+tab_9_23:  db 9, 23, 9, 23, 9, 23, 9, 23, 9, 23, 9, 23, 9, 23, 9, 23<br>>+tab_7_25:  db 7, 25, 7, 25, 7, 25, 7, 25, 7, 25, 7, 25, 7, 25, 7, 25<br>
>+tab_21_11: db 21, 11, 21, 11, 21, 11, 21, 11, 21, 11, 21, 11, 21, 11, 21, 11<br>>+tab_31_1:  db 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1<br>>+<br>>+pw_1024:   dw 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024<br>
>+<br>>+tab_Si0:  db 4, 2, 1, 0, 4, 2, 1, 0, 4, 2, 1, 0, 4, 2, 1, 0<br>>+tab_Si1:  db 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0<br>>+tab_Zero: db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0<br>>+<br>
>+SECTION .text<br>>+<br>>+;-----------------------------------------------------------------------------<br>>+; void all_angs_pred_4x4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, bool bLuma)<br>
>+;-----------------------------------------------------------------------------<br>>+INIT_XMM sse4<br>>+cglobal all_angs_pred_4x4, 6, 6, 8 dest, above0, left0, above1, left1, bLuma<br>>+<br>>+; mode 2<br>>+<br>
>+movd     m0,        [r2 + 2]<br>>+movd     m1,        [r2 + 3]<br>>+movd     m2,        [r2 + 4]<br>>+movd     m3,        [r2 + 5]<br>>+<br>>+movd     [r0],      m0<br>>+movd     [r0 + 4],  m1<br>>+movd     [r0 + 8],  m2<br>
>+movd     [r0 + 12], m3<br>>+<br>>+; mode 3<br>>+<br>>+mova          m0,        [pw_1024]<br>>+<br>>+movu          m1,        [r2 + 1]<br>>+<br>>+palignr       m2,        m1,        1<br>>+punpcklbw     m1,        m2<br>
>+<br>>+pmaddubsw     m7,        m1,        [tab_6_26]<br>>+pmulhrsw      m7,        m0<br>>+packuswb      m7,        m7<br>>+movd          [r0 + 16], m7<br>>+<br>>+movu          m2,        [r2 + 2]<br>
>+<br>>+palignr       m3,        m2,        1<br>>+punpcklbw     m2,        m3<br>>+<br>>+pmaddubsw     m6,        m2,        [tab_12_20]<br>>+pmulhrsw      m6,        m0<br>>+packuswb      m6,        m6<br>
>+movd          [r0 + 20], m6<br>>+<br>>+movu          m3,        [r2 + 3]<br>>+<br>>+palignr       m4,        m3,        1<br>>+punpcklbw     m3,        m4<br>>+<br>>+pmaddubsw     m4,        m3,        [tab_18_14]<br>
>+pmulhrsw      m4,        m0<br>>+packuswb      m4,        m4<br>>+movd          [r0 + 24], m4<br>>+<br>>+movu          m4,        [r2 + 4]<br>>+<br>>+palignr       m5,        m4,        1<br>>+punpcklbw     m4,        m5<br>
>+<br>>+pmaddubsw     m4,        [tab_24_8]<br>>+pmulhrsw      m4,        m0<br>>+packuswb      m4,        m4<br>>+movd          [r0 + 28], m4<br>>+<br>>+; mode 4<br>>+<br>>+pmaddubsw     m4,        m1,        [tab_11_21]<br>
>+pmulhrsw      m4,        m0<br>>+packuswb      m4,        m4<br>>+movd          [r0 + 32], m4<br>>+<br>>+pmaddubsw     m4,        m2,        [tab_22_10]<br>>+pmulhrsw      m4,        m0<br>>+packuswb      m4,        m4<br>
>+movd          [r0 + 36], m4<br>>+<br>>+pmaddubsw     m4,        m2,        [tab_1_31]<br>>+pmulhrsw      m4,        m0<br>>+packuswb      m4,        m4<br>>+movd          [r0 + 40], m4<br>>+<br>>+pmaddubsw     m4,        m3,        [tab_12_20]<br>
>+pmulhrsw      m4,        m0<br>>+packuswb      m4,        m4<br>>+movd          [r0 + 44], m4<br>>+<br>>+; mode 5<br>>+<br>>+pmaddubsw     m4,        m1,        [tab_15_17]<br>>+pmulhrsw      m4,        m0<br>
>+packuswb      m4,        m4<br>>+movd          [r0 + 48], m4<br>>+<br>>+pmaddubsw     m4,        m2,        [tab_30_2]<br>>+pmulhrsw      m4,        m0<br>>+packuswb      m4,        m4<br>>+movd          [r0 + 52], m4<br>
>+<br>>+pmaddubsw     m4,        m2,        [tab_13_19]<br>>+pmulhrsw      m4,        m0<br>>+packuswb      m4,        m4<br>>+movd          [r0 + 56], m4<br>>+<br>>+pmaddubsw     m3,        [tab_28_4]<br>
>+pmulhrsw      m3,        m0<br>>+packuswb      m3,        m3<br>>+movd          [r0 + 60], m3<br>>+<br>>+; mode 6<br>>+<br>>+pmaddubsw     m3,        m1,        [tab_19_13]<br>>+pmulhrsw      m3,        m0<br>
>+packuswb      m3,        m3<br>>+movd          [r0 + 64], m3<br>>+<br>>+movd          [r0 + 68], m7<br>>+<br>>+pmaddubsw     m3,        m2,        [tab_25_7]<br>>+pmulhrsw      m3,        m0<br>>+packuswb      m3,        m3<br>
>+movd          [r0 + 72], m3<br>>+<br>>+movd          [r0 + 76], m6<br>>+<br>>+; mode 7<br>>+<br>>+pmaddubsw     m3,        m1,        [tab_23_9]<br>>+pmulhrsw      m3,        m0<br>>+packuswb      m3,        m3<br>
>+movd          [r0 + 80], m3<br>>+<br>>+pmaddubsw     m3,        m1,        [tab_14_18]<br>>+pmulhrsw      m3,        m0<br>>+packuswb      m3,        m3<br>>+movd          [r0 + 84], m3<br>>+<br>>+pmaddubsw     m3,        m1,        [tab_5_27]<br>
>+pmulhrsw      m3,        m0<br>>+packuswb      m3,        m3<br>>+movd          [r0 + 88], m3<br>>+<br>>+pmaddubsw     m2,        [tab_28_4]<br>>+pmulhrsw      m2,        m0<br>>+packuswb      m2,        m2<br>
>+movd          [r0 + 92], m2<br>>+<br>>+; mode 8<br>>+<br>>+pmaddubsw     m2,         m1,       [tab_27_5]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 96],  m2<br>
>+<br>>+pmaddubsw     m2,         m1,       [tab_22_10]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 100], m2<br>>+<br>>+pmaddubsw     m2,         m1,       [tab_17_15]<br>
>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 104], m2<br>>+<br>>+pmaddubsw     m2,         m1,       [tab_12_20]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>
>+movd          [r0 + 108], m2<br>>+<br>>+; mode 9<br>>+<br>>+pmaddubsw     m2,         m1,       [tab_30_2]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 112], m2<br>
>+<br>>+pmaddubsw     m2,         m1,       [tab_28_4]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 116], m2<br>>+<br>>+pmaddubsw     m2,         m1,       [tab_26_6]<br>
>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 120], m2<br>>+<br>>+pmaddubsw     m1,         [tab_24_8]<br>>+pmulhrsw      m1,         m0<br>>+packuswb      m1,         m1<br>
>+movd          [r0 + 124], m1<br>>+<br>>+; mode 10<br>>+<br>>+movd          m1,         [r2 + 1]<br>>+pshufd        m2,         m1,        0<br>>+movu          [r0 + 128], m2<br>>+<br>>+mova         m2,          [tab_Zero]<br>
>+<br>>+pshufb       m3,          m1,       m2<br>>+punpcklbw    m3,          m2<br>>+<br>>+movd         m1,          [r1]<br>>+<br>>+pshufb       m1,          m2<br>>+punpcklbw    m1,          m2<br>
>+<br>>+movd         m4,          [r1 + 1]<br>>+punpcklbw    m4,          m2<br>>+<br>>+psubw        m4,          m1<br>>+psraw        m4,          1<br>>+<br>>+paddw        m3,          m4<br>>+<br>
>+packuswb     m3,          m2<br>>+<br>>+pextrb       [r0 + 128],  m3,    0<br>>+pextrb       [r0 + 132],  m3,    1<br>>+pextrb       [r0 + 136],  m3,    2<br>>+pextrb       [r0 + 140],  m3,    3<br>>+<br>
>+; mode 11<br>>+<br>>+movu          m1,         [r2]<br>>+<br>>+palignr       m2,         m1,        1<br>>+punpcklbw     m1,         m2<br>>+<br>>+pmaddubsw     m2,         m1,        [tab_2_30]<br>
>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 144], m2<br>>+<br>>+pmaddubsw     m2,         m1,        [tab_4_28]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>
>+movd          [r0 + 148], m2<br>>+<br>>+pmaddubsw     m2,         m1,        [tab_6_26]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 152], m2<br>>+<br>
>+pmaddubsw     m2,         m1,        [tab_8_24]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 156], m2<br>>+<br>>+; mode 12<br>>+<br>>+pmaddubsw     m2,         m1,        [tab_5_27]<br>
>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 160], m2<br>>+<br>>+pmaddubsw     m2,         m1,        [tab_10_22]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>
>+movd          [r0 + 164], m2<br>>+<br>>+pmaddubsw     m2,         m1,        [tab_15_17]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 168], m2<br>>+<br>
>+pmaddubsw     m2,         m1,        [tab_20_12]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 172], m2<br>>+<br>>+; mode 13<br>>+<br>>+pmaddubsw     m2,         m1,        [tab_9_23]<br>
>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 176], m2<br>>+<br>>+pmaddubsw     m2,         m1,        [tab_18_14]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>
>+movd          [r0 + 180], m2<br>>+<br>>+pmaddubsw     m2,         m1,        [tab_27_5]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 184], m2<br>>+<br>
>+movh          m2,         [r2 - 1]<br>>+pinsrb        m2,         [r1 + 4],    0<br>>+<br>>+palignr       m3,         m2,        1<br>>+punpcklbw     m2,         m3<br>>+<br>>+pmaddubsw     m2,         [tab_4_28]<br>
>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 188], m2<br>>+<br>>+; mode 14<br>>+<br>>+pmaddubsw     m2,         m1,        [tab_13_19]<br>>+pmulhrsw      m2,         m0<br>
>+packuswb      m2,         m2<br>>+movd          [r0 + 192], m2<br>>+<br>>+pmaddubsw     m5,         m1,        [tab_26_6]<br>>+pmulhrsw      m5,         m0<br>>+packuswb      m5,         m5<br>>+movd          [r0 + 196], m5<br>
>+<br>>+movh          m2,         [r2 - 1]<br>>+pinsrb        m2,         [r1 + 2],    0<br>>+<br>>+palignr       m3,         m2,        1<br>>+punpcklbw     m2,         m3<br>>+<br>>+pmaddubsw     m3,         m2,        [tab_7_25]<br>
>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 200], m3<br>>+<br>>+pmaddubsw     m3,         m2,        [tab_20_12]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>
>+movd          [r0 + 204], m3<br>>+<br>>+; mode 15<br>>+<br>>+pmaddubsw     m3,         m1,        [tab_17_15]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 208], m3<br>
>+<br>>+pmaddubsw     m3,         m2,        [tab_2_30]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 212], m3<br>>+<br>>+pmaddubsw     m3,         m2,        [tab_19_13]<br>
>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 216], m3<br>>+<br>>+movh          m3,         [r2 - 2]<br>>+pinsrb        m3,         [r1 + 4],    0<br>>+pinsrb        m3,         [r1 + 2],    1<br>
>+<br>>+palignr       m4,         m3,        1<br>>+punpcklbw     m3,         m4<br>>+<br>>+pmaddubsw     m3,         [tab_4_28]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>
>+movd          [r0 + 220], m3<br>>+<br>>+; mode 16<br>>+<br>>+pmaddubsw     m3,         m1,        [tab_21_11]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 224], m3<br>
>+<br>>+pmaddubsw     m3,         m2,        [tab_10_22]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 228], m3<br>>+<br>>+pmaddubsw     m3,         m2,        [tab_31_1]<br>
>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 232], m3<br>>+<br>>+movh          m3,         [r2 - 2]<br>>+pinsrb        m3,         [r1 + 3],  0<br>>+pinsrb        m3,         [r1 + 2],  1<br>
>+<br>>+palignr       m4,         m3,        1<br>>+punpcklbw     m3,         m4<br>>+<br>>+pmaddubsw     m3,         [tab_20_12]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>
>+movd          [r0 + 236], m3<br>>+<br>>+; mode 17<br>>+<br>>+movd          [r0 + 240], m5<br>>+<br>>+movh          m3,         [r2 - 1]<br>>+pinsrb        m3,         [r1 + 1],  0<br>>+<br>>+palignr       m4,         m3,        1<br>
>+punpcklbw     m3,         m4<br>>+<br>>+pmaddubsw     m3,         [tab_20_12]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 244], m3<br>>+<br>>+movh          m3,         [r2 - 2]<br>
>+pinsrb        m3,         [r1 + 2],  0<br>>+pinsrb        m3,         [r1 + 1],  1<br>>+<br>>+palignr       m4,         m3,        1<br>>+punpcklbw     m3,         m4<br>>+<br>>+pmaddubsw     m3,         [tab_14_18]<br>
>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 248], m3<br>>+<br>>+movh          m3,         [r1]<br>>+pshufb        m3,         [tab_Si0]<br>>+pinsrb        m3,         [r2 + 1],   4<br>
>+<br>>+palignr       m4,         m3,        1<br>>+punpcklbw     m3,         m4<br>>+<br>>+pmaddubsw     m3,         [tab_8_24]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>
>+movd          [r0 + 252], m3<br>>+<br>>+; mode 18<br>>+<br>>+movd          m3,         [r1]<br>>+movd          [r0 + 256], m3<br>>+<br>>+movh          m3,         [r1 - 1]<br>>+pinsrb        m3,         [r2 + 1],  0<br>
>+movd          [r0 + 260], m3<br>>+<br>>+movh          m3,         [r1 - 2]<br>>+pinsrb        m3,         [r2 + 2],  0<br>>+pinsrb        m3,         [r2 + 1],  1<br>>+movd          [r0 + 264], m3<br>>+<br>
>+movh          m3,         [r2]<br>>+pshufb        m3,         [tab_Si1]<br>>+pinsrb        m3,         [r1],       3<br>>+movd          [r0 + 268], m3<br>>+<br>>+; mode 19<br>>+<br>>+movh          m1,         [r1]<br>
>+<br>>+palignr       m2,         m1,        1<br>>+punpcklbw     m1,         m2<br>>+<br>>+pmaddubsw     m5,         m1,        [tab_26_6]<br>>+pmulhrsw      m5,         m0<br>>+packuswb      m5,         m5<br>
>+movd          [r0 + 272], m5<br>>+<br>>+movh          m2,         [r1 - 1]<br>>+pinsrb        m2,         [r2 + 1],  0<br>>+<br>>+palignr       m3,         m2,        1<br>>+punpcklbw     m2,         m3<br>
>+<br>>+pmaddubsw     m2,         [tab_20_12]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 276], m2<br>>+<br>>+movh          m2,         [r1 - 2]<br>>+pinsrb        m2,         [r2 + 2],  0<br>
>+pinsrb        m2,         [r2 + 1],  1<br>>+<br>>+palignr       m3,         m2,        1<br>>+punpcklbw     m2,         m3<br>>+<br>>+pmaddubsw     m2,         [tab_14_18]<br>>+pmulhrsw      m2,         m0<br>
>+packuswb      m2,         m2<br>>+movd          [r0 + 280], m2<br>>+<br>>+movh          m2,         [r2]<br>>+pshufb        m2,         [tab_Si0]<br>>+pinsrb        m2,         [r1 + 1],  4<br>>+<br>
>+palignr       m3,         m2,        1<br>>+punpcklbw     m2,         m3<br>>+<br>>+pmaddubsw     m2,         [tab_8_24]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 284], m2<br>
>+<br>>+; mode 20<br>>+<br>>+pmaddubsw     m2,         m1,        [tab_21_11]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 288], m2<br>>+<br>>+movh          m2,         [r1 - 1]<br>
>+pinsrb        m2,         [r2 + 2],  0<br>>+<br>>+palignr       m3,         m2,        1<br>>+punpcklbw     m2,         m3<br>>+<br>>+pmaddubsw     m3,         m2,         [tab_10_22]<br>>+pmulhrsw      m3,         m0<br>
>+packuswb      m3,         m3<br>>+movd          [r0 + 292], m3<br>>+<br>>+pmaddubsw     m3,         m2,         [tab_31_1]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 296], m3<br>
>+<br>>+movh          m3,         [r1 - 2]<br>>+pinsrb        m3,         [r2 + 3],  0<br>>+pinsrb        m3,         [r2 + 2],  1<br>>+<br>>+palignr       m4,         m3,        1<br>>+punpcklbw     m3,         m4<br>
>+<br>>+pmaddubsw     m3,         [tab_20_12]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 300], m3<br>>+<br>>+; mode 21<br>>+<br>>+pmaddubsw     m3,         m1,         [tab_17_15]<br>
>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 304], m3<br>>+<br>>+pmaddubsw     m3,         m2,         [tab_2_30]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>
>+movd          [r0 + 308], m3<br>>+<br>>+pmaddubsw     m3,         m2,         [tab_19_13]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 312], m3<br>>+<br>
>+movh          m3,         [r1 - 2]<br>>+pinsrb        m3,         [r2 + 4],   0<br>>+pinsrb        m3,         [r2 + 2],   1<br>>+<br>>+palignr       m4,         m3,         1<br>>+punpcklbw     m3,         m4<br>
>+<br>>+pmaddubsw     m3,         [tab_4_28]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 316], m3<br>>+<br>>+; mode 22<br>>+<br>>+pmaddubsw     m3,         m1,         [tab_13_19]<br>
>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 320], m3<br>>+<br>>+movd          [r0 + 324], m5<br>>+<br>>+pmaddubsw     m3,         m2,         [tab_7_25]<br>
>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 328], m3<br>>+<br>>+pmaddubsw     m3,         m2,         [tab_20_12]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>
>+movd          [r0 + 332], m3<br>>+<br>>+; mode 23<br>>+<br>>+pmaddubsw     m2,         m1,         [tab_9_23]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 336], m2<br>
>+<br>>+pmaddubsw     m2,         m1,         [tab_18_14]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 340], m2<br>>+<br>>+pmaddubsw     m2,         m1,         [tab_27_5]<br>
>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 344], m2<br>>+<br>>+movh          m2,         [r1 - 1]<br>>+pinsrb        m2,         [r2 + 4],   0<br>>+<br>>+palignr       m3,         m2,         1<br>
>+punpcklbw     m2,         m3<br>>+<br>>+pmaddubsw     m2,         [tab_4_28]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 348], m2<br>>+<br>>+; mode 24<br>
>+<br>>+pmaddubsw     m2,         m1,         [tab_5_27]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 352], m2<br>>+<br>>+pmaddubsw     m2,         m1,         [tab_10_22]<br>
>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 356], m2<br>>+<br>>+pmaddubsw     m2,         m1,         [tab_15_17]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>
>+movd          [r0 + 360], m2<br>>+<br>>+pmaddubsw     m2,         m1,         [tab_20_12]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 364], m2<br>>+<br>
>+; mode 25<br>>+<br>>+pmaddubsw     m2,         m1,         [tab_2_30]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 368], m2<br>>+<br>>+pmaddubsw     m2,         m1,         [tab_4_28]<br>
>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 372], m2<br>>+<br>>+pmaddubsw     m2,         m1,         [tab_6_26]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>
>+movd          [r0 + 376], m2<br>>+<br>>+pmaddubsw     m2,         m1,         [tab_8_24]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 380], m2<br>>+<br>
>+; mode 26<br>>+<br>>+movd          m1,         [r1 + 1]<br>>+pshufd        m2,         m1,        0<br>>+movu          [r0 + 384], m2<br>>+<br>>+mova         m2,          [tab_Zero]<br>>+<br>>+pshufb       m3,          m1,       m2<br>
>+punpcklbw    m3,          m2<br>>+<br>>+movd         m1,          [r2]<br>>+<br>>+pshufb       m1,          m2<br>>+punpcklbw    m1,          m2<br>>+<br>>+movd         m4,          [r2 + 1]<br>>+punpcklbw    m4,          m2<br>
>+<br>>+psubw        m4,          m1<br>>+psraw        m4,          1<br>>+<br>>+paddw        m3,          m4<br>>+<br>>+packuswb     m3,          m2<br>>+<br>>+pextrb       [r0 + 384],  m3,    0<br>
>+pextrb       [r0 + 388],  m3,    1<br>>+pextrb       [r0 + 392],  m3,    2<br>>+pextrb       [r0 + 396],  m3,    3<br>>+<br>>+; mode 27<br>>+<br>>+movh          m1,         [r1 + 1]<br>>+<br>>+palignr       m2,         m1,     1<br>
>+punpcklbw     m1,         m2<br>>+<br>>+pmaddubsw     m2,         m1,     [tab_30_2]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 400], m2<br>>+<br>>+pmaddubsw     m2,         m1,     [tab_28_4]<br>
>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 404], m2<br>>+<br>>+pmaddubsw     m2,         m1,     [tab_26_6]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>
>+movd          [r0 + 408], m2<br>>+<br>>+pmaddubsw     m2,         m1,     [tab_24_8]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 412], m2<br>>+<br>>+; mode 28<br>
>+<br>>+pmaddubsw     m2,         m1,     [tab_27_5]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 416], m2<br>>+<br>>+pmaddubsw     m2,         m1,     [tab_22_10]<br>
>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 420], m2<br>>+<br>>+pmaddubsw     m2,         m1,     [tab_17_15]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>
>+movd          [r0 + 424], m2<br>>+<br>>+pmaddubsw     m2,         m1,     [tab_12_20]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 428], m2<br>>+<br>>+; mode 29<br>
>+<br>>+pmaddubsw     m2,         m1,     [tab_23_9]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 432], m2<br>>+<br>>+pmaddubsw     m2,         m1,     [tab_14_18]<br>
>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>>+movd          [r0 + 436], m2<br>>+<br>>+pmaddubsw     m2,         m1,     [tab_5_27]<br>>+pmulhrsw      m2,         m0<br>>+packuswb      m2,         m2<br>
>+movd          [r0 + 440], m2<br>>+<br>>+movh          m2,         [r1 + 2]<br>>+<br>>+palignr       m3,         m2,     1<br>>+punpcklbw     m2,         m3<br>>+<br>>+pmaddubsw     m3,         m2,     [tab_28_4]<br>
>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 444], m3<br>>+<br>>+; mode 30<br>>+<br>>+pmaddubsw     m3,         m1,     [tab_19_13]<br>>+pmulhrsw      m3,         m0<br>
>+packuswb      m3,         m3<br>>+movd          [r0 + 448], m3<br>>+<br>>+pmaddubsw     m6,         m1,     [tab_6_26]<br>>+pmulhrsw      m6,         m0<br>>+packuswb      m6,         m6<br>>+movd          [r0 + 452], m6<br>
>+<br>>+pmaddubsw     m3,         m2,     [tab_25_7]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 456], m3<br>>+<br>>+pmaddubsw     m5,         m2,     [tab_12_20]<br>
>+pmulhrsw      m5,         m0<br>>+packuswb      m5,         m5<br>>+movd          [r0 + 460], m5<br>>+<br>>+; mode 31<br>>+<br>>+pmaddubsw     m3,         m1,     [tab_15_17]<br>>+pmulhrsw      m3,         m0<br>
>+packuswb      m3,         m3<br>>+movd          [r0 + 464], m3<br>>+<br>>+pmaddubsw     m3,         m2,     [tab_30_2]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 468], m3<br>
>+<br>>+pmaddubsw     m3,         m2,     [tab_13_19]<br>>+pmulhrsw      m3,         m0<br>>+packuswb      m3,         m3<br>>+movd          [r0 + 472], m3<br>>+<br>>+movh          m3,         [r1 + 3]<br>
>+<br>>+palignr       m4,         m3,     1<br>>+punpcklbw     m3,         m4<br>>+<br>>+pmaddubsw     m4,         m3,     [tab_28_4]<br>>+pmulhrsw      m4,         m0<br>>+packuswb      m4,         m4<br>
>+movd          [r0 + 476], m4<br>>+<br>>+; mode 32<br>>+<br>>+pmaddubsw     m4,         m1,     [tab_11_21]<br>>+pmulhrsw      m4,         m0<br>>+packuswb      m4,         m4<br>>+movd          [r0 + 480], m4<br>
>+<br>>+pmaddubsw     m4,         m2,     [tab_22_10]<br>>+pmulhrsw      m4,         m0<br>>+packuswb      m4,         m4<br>>+movd          [r0 + 484], m4<br>>+<br>>+pmaddubsw     m4,         m2,     [tab_1_31]<br>
>+pmulhrsw      m4,         m0<br>>+packuswb      m4,         m4<br>>+movd          [r0 + 488], m4<br>>+<br>>+pmaddubsw     m4,         m3,     [tab_12_20]<br>>+pmulhrsw      m4,         m0<br>>+packuswb      m4,         m4<br>
>+movd          [r0 + 492], m4<br>>+<br>>+; mode 33<br>>+<br>>+movd          [r0 + 496], m6<br>>+<br>>+movd          [r0 + 500], m5<br>>+<br>>+pmaddubsw     m3,         [tab_18_14]<br>>+pmulhrsw      m3,         m0<br>
>+packuswb      m3,         m3<br>>+movd          [r0 + 504], m3<br>>+<br>>+movh          m1,         [r1 + 4]<br>>+<br>>+palignr       m2,         m1,     1<br>>+punpcklbw     m1,         m2<br>>+<br>
>+pmaddubsw     m1,         [tab_24_8]<br>>+pmulhrsw      m1,         m0<br>>+packuswb      m1,         m1<br>>+movd          [r0 + 508], m1<br>>+<br>>+; mode 34<br>>+<br>>+movd         m0,          [r1 + 2]<br>
>+movd         [r0 + 512],  m0<br>>+<br>>+movd         m0,          [r1 + 3]<br>>+movd         [r0 + 516],  m0<br>>+<br>>+movd         m0,          [r1 + 4]<br>>+movd         [r0 + 520],  m0<br>>+<br>
>+movd         m0,          [r1 + 5]<br>>+movd         [r0 + 524],  m0<br>>+<br>>+RET<br></div></div>>_______________________________________________<br>>x265-devel mailing list<br>><a href="mailto:x265-devel@videolan.org" target="_blank">x265-devel@videolan.org</a><br>
><a href="https://mailman.videolan.org/listinfo/x265-devel" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br></div></div><br>_______________________________________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
<br></blockquote></div><br></div>