I just uploaded libfreevec after finishing memccpy() as well (which provides from 5% to 750% speed increase over the glibc one.
The lib can be found at
And I'll soon upload it to the files section in ppczone.org (not now as I have to go in a few minutes :-)
Wrt to the functions, except memmove(), swab() and memchr/memrchr() where I suspect a bug in cases of alignment=15, all the others I'm pretty confident that they work fine. Still, if you find a bug or have some suggestion for further optimization, I'd gladly accept any feedback!
I also include the hashing.c file with hashing functions in several forms, the originals, the vectorized but no altivec (should work in all scalar cpu) and the altivec ones.
I regret not including lots of comments in there, but I've started doing this gradually in all the functions.
When this lib reaches a state where it's complete (ie all relevant glibc functions are vectorized), I'll upload a vectorized glibc package (for Debian, but also the binary) to see if there are any gains in system-wide Altivec use.