Hi,
I've improved the mpn_lshift code for the PowerPC 7400 class of
processors. Note that this code is specific to Motorola's G4 (7400,
7410, 7450, 7455, and up) processors and will not work on a generic
PowerPC. It takes advantage of the AltiVec instructions to give a
speedup of 2x for non-bandwidth bound operations and a speedup of about
30-40% for bandwidth bound operations. The two files I'm sending are
the C-code for the function and the assembler version. On gcc 3.1, the
C-code is just as fast as the assembler when the size of the arguments
is fairly small and only slightly slower (10-15%) when the arguments
are large. Please note that I'm not a terribly good assembly
programmer so there might be some speed gains of about 15% to be had
from going over my code and tweaking it as necessary. If you have any
questions or requests, you can reach me at bcyounger@xxxxxxxxxxxxxxxxxx
Brendan Younger
mpn_lshift.c
Description: Text document
mpn_lshift.s
Description: Binary data