this version is good. of course, you may use %rep to reduce text lines, don't need modify, just for future
At 2015-02-02 19:48:10,[email protected] wrote: ># HG changeset patch ># User Praveen Tiwari ># Date 1422877414 -19800 ># Branch stable ># Node ID 8d03acd70332ccf642fc7222bf6f9e7f005983ba ># Parent 8e1f8ca9d4112d8ad9801bf79518482306ff55ce >blockfill_s_16x16 sse2 asm code optimization > >eliminated branch instructions and optimized LEA instruction > >diff -r 8e1f8ca9d411 -r 8d03acd70332 source/common/x86/blockcopy8.asm >--- a/source/common/x86/blockcopy8.asm Mon Feb 02 17:03:40 2015 +0530 >+++ b/source/common/x86/blockcopy8.asm Mon Feb 02 17:13:34 2015 +0530 >@@ -1771,57 +1771,58 @@ > RET > > ;----------------------------------------------------------------------------- >-; void blockfill_s_%1x%2(int16_t* dst, intptr_t dstride, int16_t val) >+; void blockfill_s_16x16(int16_t* dst, intptr_t dstride, int16_t val) > ;----------------------------------------------------------------------------- >-%macro BLOCKFILL_S_W16_H8 2 > INIT_XMM sse2 >-cglobal blockfill_s_%1x%2, 3, 5, 1, dst, dstStride, val >- >-mov r3d, %2/8 >+cglobal blockfill_s_16x16, 3, 4, 1, dst, dstStride, val > > add r1, r1 >+lea r3, [3 * r1] > > movd m0, r2d >-pshuflw m0, m0, 0 >-pshufd m0, m0, 0 >- >-.loop: >- movu [r0], m0 >- movu [r0 + 16], m0 >- >- movu [r0 + r1], m0 >- movu [r0 + r1 + 16], m0 >- >- movu [r0 + 2 * r1], m0 >- movu [r0 + 2 * r1 + 16], m0 >- >- lea r4, [r0 + 2 * r1] >- movu [r4 + r1], m0 >- movu [r4 + r1 + 16], m0 >- >- movu [r0 + 4 * r1], m0 >- movu [r0 + 4 * r1 + 16], m0 >- >- lea r4, [r0 + 4 * r1] >- movu [r4 + r1], m0 >- movu [r4 + r1 + 16], m0 >- >- movu [r4 + 2 * r1], m0 >- movu [r4 + 2 * r1 + 16], m0 >- >- lea r4, [r4 + 2 * r1] >- movu [r4 + r1], m0 >- movu [r4 + r1 + 16], m0 >- >- lea r0, [r0 + 8 * r1] >- >- dec r3d >- jnz .loop >- >+pshuflw m0, m0, 0 >+pshufd m0, m0, 0 >+ >+movu [r0], m0 >+movu [r0 + 16], m0 >+movu [r0 + r1], m0 >+movu [r0 + r1 + 16], m0 >+movu [r0 + 2 * r1], m0 >+movu [r0 + 2 * r1 + 16], m0 >+ >+movu [r0 + r3], m0 >+movu [r0 + r3 + 16], m0 >+lea r0, [r0 + 4 * r1] >+movu [r0], m0 >+movu [r0 + 16], m0 >+ >+movu [r0 + r1], m0 >+movu [r0 + r1 + 16], m0 >+movu [r0 + 2 * r1], m0 >+movu [r0 + 2 * r1 + 16], m0 >+movu [r0 + r3], m0 >+movu [r0 + r3 + 16], m0 >+lea r0, [r0 + 4 * r1] >+movu [r0], m0 >+movu [r0 + 16], m0 >+ >+movu [r0 + r1], m0 >+movu [r0 + r1 + 16], m0 >+movu [r0 + 2 * r1], m0 >+movu [r0 + 2 * r1 + 16], m0 >+movu [r0 + r3], m0 >+movu [r0 + r3 + 16], m0 >+lea r0, [r0 + 4 * r1] >+movu [r0], m0 >+movu [r0 + 16], m0 >+ >+movu [r0 + r1], m0 >+movu [r0 + r1 + 16], m0 >+movu [r0 + 2 * r1], m0 >+movu [r0 + 2 * r1 + 16], m0 >+movu [r0 + r3], m0 >+movu [r0 + r3 + 16], m0 > RET >-%endmacro >- >-BLOCKFILL_S_W16_H8 16, 16 > > INIT_YMM avx2 > cglobal blockfill_s_16x16, 3, 4, 1 >_______________________________________________ >x265-devel mailing list >[email protected] >https://mailman.videolan.org/listinfo/x265-devel
_______________________________________________ x265-devel mailing list [email protected] https://mailman.videolan.org/listinfo/x265-devel
