Faf - Im interested in learning more. How are SIMDs a step backward?
Feature wise, they are a lot more primitive then what we got to work with in the past. Yes there's a lot more of them, but I am not complaining about raw performance here.
And I was pretty much referring to both chips here, and quite possibly Revolution as well.
What exactl do you mean by "real man's" SIMD?
It's a name Deano jokingly gave to vertical-only SIMD. I guess complaining about it would make me a bit girly
Anyway Pana worded some of what I referred to, and I already ranted long in this post so let that be enough for now.
It is the AoS vs SoA argument.
I am not rigidly stuck on one notation over another - I just don't like it when an ISA forces me to evaluate math in every algorithm as a special case unto itself (if I want efficiency that is).
Anyway here's a fun mental excercise - try giving some thought what it would take to make your atomic element a 4x4quad instead of 4x1 vector in your entire codebase (all of it, not just vector/matrix arrays).
I'm not even gonna ask you to figure out what a good class interface would be for such a type, just consider the data layout implications alone.
Personally I thought the VU implementation was already a step backwards from the Dreamcasts SH4 SIMD......
I don't quite agree with that.
It's true SH4 had nice mapping of register pool as floats, vectors, and matrices, which is just about as flexible as you can get for data access in registers.
But on the flipside, the FPU register pool was quite tiny and the ISA was very barebones - DOT instruction is nice and all, but it doesn't make a powerful SIMD by itself.
VUs just made a whole lot of things easier IMO.
That said, we've had bigger and better things then either since then, but I'm not going there now
I would assume that th present featureset is more opimimum when you're looking at it from an EE side; better output per area utilized.
Oh I never said I don't understand their reasoning - but that doesn't make me like it any better, knowing something has good output/area ratio don't make writting code for me any easier.
...and yea that other thing too...