<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><div>8xN is right<br></div><pre><br>At 2015-02-03 21:07:25,praveen@multicorewareinc.com wrote:
># HG changeset patch
># User Praveen Tiwari
># Date 1422968834 -19800
># Node ID 6aba648bfada606d14f20e0a7cdb667d043069ae
># Parent a7dff1040961c2c17254c2e2bb0bf5b7857c8187
>blockcopy_pp_8x64: sse2 asm code optimization
>
>improved, 800.38c -> 752.18c
>
>diff -r a7dff1040961 -r 6aba648bfada source/common/x86/blockcopy8.asm
>--- a/source/common/x86/blockcopy8.asm Tue Feb 03 18:26:22 2015 +0530
>+++ b/source/common/x86/blockcopy8.asm Tue Feb 03 18:37:14 2015 +0530
>@@ -482,48 +482,38 @@
> RET
>
> ;-----------------------------------------------------------------------------
>-; void blockcopy_pp_%1x%2(pixel* dst, intptr_t dstStride, const pixel* src, intptr_t srcStride)
>+; void blockcopy_pp_8x64(pixel* dst, intptr_t dstStride, const pixel* src, intptr_t srcStride)
> ;-----------------------------------------------------------------------------
>-%macro BLOCKCOPY_PP_W8_H8 2
> INIT_XMM sse2
>-cglobal blockcopy_pp_%1x%2, 4, 5, 6
>- mov r4d, %2/8
>-
>-.loop:
>- movh m0, [r2]
>- movh m1, [r2 + r3]
>- lea r2, [r2 + 2 * r3]
>- movh m2, [r2]
>- movh m3, [r2 + r3]
>- lea r2, [r2 + 2 * r3]
>- movh m4, [r2]
>- movh m5, [r2 + r3]
>-
>- movh [r0], m0
>- movh [r0 + r1], m1
>- lea r0, [r0 + 2 * r1]
>- movh [r0], m2
>- movh [r0 + r1], m3
>- lea r0, [r0 + 2 * r1]
>- movh [r0], m4
>- movh [r0 + r1], m5
>-
>- lea r2, [r2 + 2 * r3]
>- movh m4, [r2]
>- movh m5, [r2 + r3]
>- lea r0, [r0 + 2 * r1]
>- movh [r0], m4
>- movh [r0 + r1], m5
>-
>- dec r4d
>- lea r0, [r0 + 2 * r1]
>- lea r2, [r2 + 2 * r3]
>- jnz .loop
>-RET
>-%endmacro
>-
>-
>-BLOCKCOPY_PP_W8_H8 8, 64
>+cglobal blockcopy_pp_8x64, 4, 6, 4
>+
>+ lea r4, [3 * r3]
>+ lea r5, [3 * r1]
>+
>+ movh m0, [r2]
>+ movh m1, [r2 + r3]
>+ movh m2, [r2 + 2 * r3]
>+ movh m3, [r2 + r4]
>+
>+ movh [r0], m0
>+ movh [r0 + r1], m1
>+ movh [r0 + 2 * r1], m2
>+ movh [r0 + r5], m3
>+
>+ %rep 15
>+ lea r2, [r2 + 4 * r3]
>+ movh m0, [r2]
>+ movh m1, [r2 + r3]
>+ movh m2, [r2 + 2 * r3]
>+ movh m3, [r2 + r4]
>+
>+ lea r0, [r0 + 4 * r1]
>+ movh [r0], m0
>+ movh [r0 + r1], m1
>+ movh [r0 + 2 * r1], m2
>+ movh [r0 + r5], m3
>+ %endrep
>+ RET
>
> ;-----------------------------------------------------------------------------
> ; void blockcopy_pp_%1x%2(pixel* dst, intptr_t dstStride, const pixel* src, intptr_t srcStride)
>_______________________________________________
>x265-devel mailing list
>x265-devel@videolan.org
>https://mailman.videolan.org/listinfo/x265-devel
</pre></div>