On 2009-02-23 14:48:50 +0100, Chad J <gamerc...@__spam.is.bad__gmail.com> said:

Don wrote:

So it looks to me as though with the minimal language changes, we could
get almost complete SIMD support, with excellent syntax.


enum { x=0, y=1, z=2, w=3 }
float[4] foo;
foo[x] = 42;
foo[y] = foo[x];
// etc
foo[] = [foo[y],foo[x],foo[y],foo[x]];

*grin*

Sorry to bump up this discussion, but I was away and then busy with other stuff... and coming back I had lot of piled up work... (also make tango work wit the brand new dmd on mac ;) so I had missed it.

I think that an aligned vector would be very useful to have for small vectors.
Intrinsic functions could be useful, but I agree with the "joke" done by Chad.
What I really want to see is that the compiler uses them when it should (as I think downs did with his autovectorization patch for gdc). Not too much cluttering for special notation, but the normal one that is done efficiently when possible. A special type is probably needed (for alignment reasons), but then that's about it from the language point of view (even that might be avoided with align, or maybe sometime even without, but maybe that is to expect too much from the compiler).

I also would like to stress again that there are also doubles (but indeed the gain in that case is much smaller).

Fawzi

Reply via email to