Yeah, this is good statistics and does point out that the vector 
add/mul/permute stuff are used whenever vectors are in use.

Intrinsics is one thing, however, better would be platform independent stuff. 
Altivec have a different syntax for the permute instructions than the SSE 
shuffle instructions, so in my mind primitive vectors should support all the 
basic operations of the base type such as +,-,* and / for float vectors. 
Permutation should be supported with the OpenCL-like syntax (as it is easy to 
remember) as I suggested.

Stuff like cross and dot products are up for libraries in my opinion (but could 
be nice as operators for readability issues, but this is probably not worth the 
hassle unless there is a way to override operators for standard types, which is 
probably a bad idea anyway, better would be proper unicode support and a way to 
define infix functions so it is possible define a cross product function with 
the proper cross product operator as function name on a library level).

/ Mattias

Reply via email to