[PATCH] PPC64 Additional memcpy improvements

Steve Munroe sjmunroe@us.ibm.com
Sat Jul 17 19:03:00 GMT 2004


I have rewritten memcpy.S several times and have some good results for 
specific cases. The <32 byte case is totally new, rewritten without 
loops with further special case for <= 8 bytes. This I think I done 
with. Some additional improvement in the aligned long moves but the 
unaligned long move still needs work. But this version is still a 
significant improvement.

Processor   |short-aligned|short-unaligned|long-aligned|long-unaligned
------------+-------------+---------------+------------+--------------
630-400MHz  | +14.9 - +67%| +12.7 - +277% | +0.0 - +26%| -0.3 - +7%
------------+-------------+---------------+------------+--------------
sStar-650MHz| +11.4 - +36%| +2.3 - +41.5% | +3.4 - +14%| +0.3 - +7.6%
------------+-------------+---------------+------------+--------------
POWER4-1GHz |+16.6 - +192%| +1.4 - +134%  | +4.0 - +39%| -1.3 - +53.5%
------------+-------------+---------------+------------+--------------
970-2GHz    |+13.1 - +173%| +1.5 - +131%  | +9.9 - +38%| -0.5 - +56.2%
------------+-------------+---------------+------------+--------------

Short copies are in the range 8-31 bytes, long copies are >=32 up to a 
1000 bytes. The measurements taken where 8, 16, 31, 65, 256, and 1000 
bytes. The largest gains where seen in the 31 bytes copies. The least 
gains (or slight lost) ocurred for the unaligned 1000 byte copy. This is 
likely due to extra testing required for the added special case handling 
for shorter copies.

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ppc64-memcpy-20040717.txt
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20040717/fdbe45ab/attachment.txt>


More information about the Libc-alpha mailing list