<div dir="ltr"><span style="color:rgb(0,0,0);font-family:arial;font-size:14px;line-height:23.7999992370605px">maskmovdqu, </span>[i420] copy_pp[ 6x8] 0.79x 670.04 527.63 <div>even slower than C code as well as high maintenance code, need to maintain separate code for separate platform as we have mapped rdi differently.</div><div><br></div><div><br></div><div>Regards,</div><div>Praveen <br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 3, 2015 at 2:57 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;color:#000000;font-size:14px;font-family:arial"><div>How about maskmovdqu</div>
<div><br>At 2015-02-03 17:00:54,<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 1422954042 -19800<br>># Node ID d212ce9fa3705b9e7d4d23f14412bd28fe3bbfde<br>># Parent 059892f65db3e4c70017241ea847717e11be0124<br>>blockcopy_pp_6x8 sse2 asm code optimization<br>><br>>improved, 248.67c -> 212.56c<br>><br>>diff -r 059892f65db3 -r d212ce9fa370 source/common/x86/blockcopy8.asm<br>>--- a/source/common/x86/blockcopy8.asm Tue Feb 03 11:58:18 2015 +0530<br>>+++ b/source/common/x86/blockcopy8.asm Tue Feb 03 14:30:42 2015 +0530<br>>@@ -224,65 +224,51 @@<br>> ; void blockcopy_pp_6x8(pixel* dst, intptr_t dstStride, const pixel* src, intptr_t srcStride)<br>> ;-----------------------------------------------------------------------------<br>> INIT_XMM sse2<br>>-cglobal blockcopy_pp_6x8, 4, 7, 8<br>>-<br>>- movd m0, [r2]<br>>- movd m1, [r2 + r3]<br>>- movd m2, [r2 + 2 * r3]<br>>- lea r5, [r2 + 2 * r3]<br>>- movd m3, [r5 + r3]<br>>-<br>>- movd m4, [r5 + 2 * r3]<br>>- lea r5, [r5 + 2 * r3]<br>>- movd m5, [r5 + r3]<br>>- movd m6, [r5 + 2 * r3]<br>>- lea r5, [r5 + 2 * r3]<br>>- movd m7, [r5 + r3]<br>>-<br>>- movd [r0], m0<br>>- movd [r0 + r1], m1<br>>- movd [r0 + 2 * r1], m2<br>>- lea r6, [r0 + 2 * r1]<br>>- movd [r6 + r1], m3<br>>-<br>>- movd [r6 + 2 * r1], m4<br>>- lea r6, [r6 + 2 * r1]<br>>- movd [r6 + r1], m5<br>>- movd [r6 + 2 * r1], m6<br>>- lea r6, [r6 + 2 * r1]<br>>- movd [r6 + r1], m7<br>>-<br>>- mov r4w, [r2 + 4]<br>>- mov r5w, [r2 + r3 + 4]<br>>- mov r6w, [r2 + 2 * r3 + 4]<br>>-<br>>- mov [r0 + 4], r4w<br>>- mov [r0 + r1 + 4], r5w<br>>- mov [r0 + 2 * r1 + 4], r6w<br>>-<br>>- lea r0, [r0 + 2 * r1]<br>>- lea r2, [r2 + 2 * r3]<br>>-<br>>- mov r4w, [r2 + r3 + 4]<br>>- mov r5w, [r2 + 2 * r3 + 4]<br>>-<br>>- mov [r0 + r1 + 4], r4w<br>>- mov [r0 + 2 * r1 + 4], r5w<br>>-<br>>- lea r0, [r0 + 2 * r1]<br>>- lea r2, [r2 + 2 * r3]<br>>-<br>>- mov r4w, [r2 + r3 + 4]<br>>- mov r5w, [r2 + 2 * r3 + 4]<br>>-<br>>- mov [r0 + r1 + 4], r4w<br>>- mov [r0 + 2 * r1 + 4], r5w<br>>-<br>>- lea r0, [r0 + 2 * r1]<br>>- lea r2, [r2 + 2 * r3]<br>>-<br>>- mov r4w, [r2 + r3 + 4]<br>>- mov [r0 + r1 + 4], r4w<br>>+cglobal blockcopy_pp_6x8, 4, 7, 3<br>>+<br>>+ movd m0, [r2]<br>>+ mov r4w, [r2 + 4]<br>>+ movd m1, [r2 + r3]<br>>+ mov r5w, [r2 + r3 + 4]<br>>+ movd m2, [r2 + 2 * r3]<br>>+ mov r6w, [r2 + 2 * r3 + 4]<br>>+<br>>+ movd [r0], m0<br>>+ mov [r0 + 4], r4w<br>>+ movd [r0 + r1], m1<br>>+ mov [r0 + r1 + 4], r5w<br>>+ movd [r0 + 2 * r1], m2<br>>+ mov [r0 + 2 * r1 + 4], r6w<br>>+<br>>+ lea r2, [r2 + 2 * r3]<br>>+ movd m0, [r2 + r3]<br>>+ mov r4w, [r2 + r3 + 4]<br>>+ movd m1, [r2 + 2 * r3]<br>>+ mov r5w, [r2 + 2 * r3 + 4]<br>>+ lea r2, [r2 + 2 * r3]<br>>+ movd m2, [r2 + r3]<br>>+ mov r6w, [r2 + r3 + 4]<br>>+<br>>+ lea r0, [r0 + 2 * r1]<br>>+ movd [r0 + r1], m0<br>>+ mov [r0 + r1 + 4], r4w<br>>+ movd [r0 + 2 * r1], m1<br>>+ mov [r0 + 2 * r1 + 4], r5w<br>>+ lea r0, [r0 + 2 * r1]<br>>+ movd [r0 + r1], m2<br>>+ mov [r0 + r1 + 4], r6w<br>>+<br>>+ lea r2, [r2 + 2 * r3]<br>>+ movd m0, [r2]<br>>+ mov r4w, [r2 + 4]<br>>+ movd m1, [r2 + r3]<br>>+ mov r5w, [r2 + r3 + 4]<br>>+<br>>+ lea r0, [r0 + 2 * r1]<br>>+ movd [r0], m0<br>>+ mov [r0 + 4], r4w<br>>+ movd [r0 + r1], m1<br>>+ mov [r0 + r1 + 4], r5w<br>> RET<br>> <br>> ;-----------------------------------------------------------------------------<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>