We also played around with GCC's vector extensions years ago. Here's a pointer
to one of many discussions we had:
https://bugs.linuxsampler.org/cgi-bin/show_bug.cgi?id=25
One of the main problems we had, is that there's no way to access the
individual "cells" / members of the vector effectively:
http://gcc.gnu.org/ml/gcc-help/2006-04/msg00178.html
Not sure if that changed in the meantime, but somehow I doubt it. :)
CU
Christian
Am Donnerstag, 7. Februar 2008 17:51:06 schrieb Malte Steiner:
Hello,
I try to squeeze as much performance as possible out of my upcomming
Linux synthesizer and try manual vectorization with following construct
in c, mainly to vectorize away multiplications :
typedef float v4sf __attribute__ ((vector_size(16)));
union f4vector
{
v4sf v __attribute__((aligned (16)));
float f[4] __attribute__((aligned (16)));
};
On AMD 64bit Turion (single core) on 64 Studio in 64bit mode this doesnt
improve performance at all, actually it even get worse. Is GCC that good
at optimizing on its own? I have no access to Intel processors at the
moment but would love to know how to benefit from SIMD optimizations of
float operations.
Sources on the web are rather thin...
Cheers,
Malte