On 2004-08-11 17:19:45 [+0200], Scott Donaldson wrote: > What about creating a set of intrinsics for the SIMD operations, that way > SIMD could be used in the C(++) and hide the processor specifics until > compile time. Also that way you could use the operations transparently > even if the CPU doesn't have support for a specific instruction. Cross > platform SIMD optimization would become more accessible without delving > into processor specific code. No way, IMHO. There are intrinsics for AltiVec, and these work pretty well AFAIK; but that's because the C++ support was part of the AltiVec design. And AltiVec isn't troubled with the diversity of x86 SIMD, I think the AltiVec command set hasn't changed since the first 7400. On x86 we have both 64bit and 128bit datatypes, which require different code (different alignment issues, loop sizes, etc.). Then we have several command set 'standards': MMX, Extended MMX, 3DNow!, 3DNow! DSP Extensions, SSE, SSE2; 3DNow! Professional is just a SSE clone, luckily enough. Oh, and on x86/64 we suddenly have 16 128bit registers, but only 8 64bit registers. I don't see how we could design intrinsics for this mess in the scope of Haiku. Bye, Chris