History of libfreevec

This is from the original freevec.org site:

I have been a PowerPC user for many years, but I had never had the opportunity to work with a G4 processor until late September 2004. At that time, I attended various AltiVec tutorials/seminars at the Euro SNDF show which were held by Dr. Sergei Larin and Chuck Corley from Freescale. I would like to thank both of them as they provided myself with the inspiration to work on the AltiVec engine. During said seminars, I was shown how much performance is hidden in this small and underestimated CPU. In times when everyone seems to be focused on 64-bit technology, it is no surprise that some people dismiss the G4 processor as outdated technology. If only you knew...

Thanks to the support by Genesi and Freescale, I was given an Open Desktop Workstation (A Pegasos II, G4@1Ghz)for development purposes at the show and was highly motivated to do software development on this platform. Soon after the seminars ended, I started researching for source code on programming the AltiVec unit and its applications. To my surprise, I discovered that the G4 vector engine is basically unused by Linux itself which happens to be my platform of choice whereas it speeds up many system components in MacOS X.

Why is this so? I have not found a definite answer to this question. One possible reason could be that AltiVec was originally designed as a multimedia extension and for processing media data. While this simple fact cannot be denied, it is still no convincing argument why this exciting technology has been neglected and not been used for more ordinary tasks which might increase the performance of the whole system.

For example, did you know that you can do byte swapping with AltiVec 7 times faster than with scalar code? Or that it is possible to sort integers and floats 4 times faster with the help of AltiVec? Were you aware that it helps to do string searching faster? Memory hashing gets upto 7 times faster. The list could just go on and on...

With these things in mind, I was determined to take an active role in allowing Linux and other operating systems to profit from AltiVec on a system wide scale. Initially this project started with the financial help of Genesi, and I was able to start work on libfreevec which is presented to you on this website.