On Thu, 2008-02-07 at 19:13 +0000, Christian Schoenebeck wrote:
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. :)
It did change (or will do?) with the Penryn Core 2:
The INSERTPS and PINSR instructions read 8, 16 or 32 bits from an x86
register memory location and insert it into a field in the destination
register given by an immediate operand, EXTRACTPS and PEXTR read a field
from the source register and insert it into an x86 register or memory
location. For example, PEXTRD eax, [xmm0], 1; EXTRACTPS [addr+4*eax],
xmm1, 1 stores the first field of xmm1 in the address given by the first
field of xmm0.
http://en.wikipedia.org/wiki/SSE4