Autovectorization, SIMD, etc.

Jakub Stachowski qbast at go2.pl
Sat Dec 23 17:18:58 CET 2006


Hello,

Several people mentioned idea of either using GCC abilities to automatically 
use SIMD instructions for loops or write separate library that could select 
most efficient method based on capabilities of CPU. This kind library already 
exists (see http://liboil.freedesktop.org/wiki/ ) and is used for example in 
gstreamer. The library covers quite a lot of tasks: data copying, type 
conversion, vector arithmetic operations, colorspace conversions, and more. 
Each function can have several implementations (for example reference one, 
MMX using, SIMD using, etc.) and on application startup they are benchmarked 
and most efficient for this CPU is selected.


More information about the kimageshop mailing list