|
Boost : |
Subject: Re: [boost] [XInt] Some after thoughts
From: Joel Falcou (joel.falcou_at_[hidden])
Date: 2011-03-11 00:58:54
On 11/03/11 01:06, Simonson, Lucanus J wrote:
> I can attest that it is generally not compatible with generation of optimal code. Others may disagree, but I've had some unique experience with trying to create a C++ abstraction on vector instruction sets. Other than the fact that I couldn't do some necessary AST transformations in the ETs of our DSEL for vector operations because there is no way to identify whether two arguments to an expression are the same varaible, only the same type, there were many, many other problems that caused the reality to fall short of our expectations and promising results early on. Frankly, if you want fast SSE accelerated code you should do it by hand in assembler.
Except not ... We disagree ont his point but we wont re-run the play
again on this subject. Wait may 15.
> For infinite precision integer in particular you need access to the carry bit that is generated by vector artihmetic and other instruction level features. Just replacing int with int_128_t isn't going to get you too far.
Of course, again you put word in my mouth. The underlying representation
can still be some int arrays, you just need to work on them using a
range adaptor outputing SIMD register filled with data on the fly. It is
a specialization of the memory allocator and of the algorithm.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk