<div dir="ltr">please ignore this patch, i'm re-sending it.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Dec 9, 2013 at 3:02 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 class="im"><div>>+INIT_XMM sse4<br>>+cglobal intra_pred_ang4_3, 3,4,8<br>
>+    cmp         r4m, byte 33<br>>+    cmove       r2, r3mp<br>>+    lea         r3, [ang_table + 20 * 32]</div>
</div><div>why 32? on non-AVX2, register size is 16-bytes</div>
<div><div class="im"><br>>+    movu        m0, [r2 + 2]    ; [8 7 6 5 4 3 2 1]<br>>+    palignr     m1, m0, 2       ; [x 8 7 6 5 4 3 2]<br>>+    punpcklwd   m2, m0, m1      ; [5 4 4 3 3 2 2 1]<br>>+    palignr     m5, m0, 4       ; [x x 8 7 6 5 4 3]<br>
>+    punpcklwd   m3, m1, m5      ; [6 5 5 4 4 3 3 2]<br>>+    palignr     m1, m0, 6       ; [x x x 8 7 6 5 4]<br>>+    punpcklwd   m4, m5 ,m1      ; [7 6 6 5 5 4 4 3]<br>>+    movhps      m0, [r2 + 2]    ; [x x x x 8 7 6 5]<br>
</div>movhlps to avoid access to memory</div><div><div class="h5">
<div> </div>
<div>>+    punpcklwd   m5, m1, m0      ; [8 7 7 6 6 5 5 4]<br>>+<br>>+    mova        m0, [r3 + 6 * 32]   ; [26]<br>>+    mova        m1, [r3]            ; [20]<br>>+    mova        m6, [r3 - 6 * 32]   ; [14]<br>
>+    mova        m7, [r3 - 12 * 32]  ; [ 8]<br>>+<br>>+ALIGN 32<br>>+.do_filter4x4:<br>>+    pmaddwd m2, m0<br>>+    paddd   m2, [pd_16]<br>>+    psrld   m2, 5<br>>+<br>>+    pmaddwd m3, m1<br>
>+    paddd   m3, [pd_16]<br>>+    psrld   m3, 5<br>>+    packusdw m2, m3<br>>+<br>>+    pmaddwd m4, m6<br>>+    paddd   m4, [pd_16]<br>>+    psrld   m4, 5<br>>+<br>>+    pmaddwd m5, m7<br>>+    paddd   m5, [pd_16]<br>
>+    psrld   m5, 5<br>>+    packusdw m4, m5<br>>+<br>>+    jz         .store<br>>+<br>>+    ; transpose 4x4<br>>+    punpckhwd    m0, m2, m4<br>>+    punpcklwd    m2, m4<br>>+    punpckhwd    m4, m2, m0<br>
>+    punpcklwd    m2, m0<br>>+<br>>+.store:<br>>+    add         r1, r1<br>>+    movh        [r0], m2<br>>+    movhps      [r0 + r1], m2<br>>+    movh        [r0 + r1 * 2], m4<br>>+    lea         r1, [r1 * 3]<br>
>+    movhps      [r0 + r1], m4<br>>+    RET<br></div></div></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>