
On 11/03/11 20:29, Simonson, Lucanus J wrote:
I am basing my opinion on experience with larrabee vector instruction set not SSE.
http://drdobbs.com/architecture-and-design/216402188?pgno=2
"Vector Arithmetic, Logical, and Shift Instructions The arithmetic, logical, and shift vector instructions include everything you'd expect: add, subtract, add with carry, subtract with borrow, multiply, round, clamp, max, min, absolute max, logical-or, logical-and, logical-xor, logical-shift and arithmetic-shift by a per-element variable number of bits, and conversions among floats, doubles, and signed and unsigned int32s."
I'll call out add with carry and subtract with borrow from that list, which is not exhaustive, by the way. There are a ton of instructions and some are impossible to map an expression to using expression templates due to language limitations.
I said vector instruction sets are a moving target at the outset. If you are designing based on SSE you are solving yesterday's problems. Sorry to not have a Larabee to do stuff , really.
More seriously, I fail to see an vector operation that is "limited by the language". I have very eager to see the one you speak about.