Boost logo

Boost :

Subject: Re: [boost] Boost SIMD beta release
From: Tim Blechmann (tim_at_[hidden])
Date: 2012-12-20 11:35:59


>>> * is it possible to define simd kernels for both packs and scalars e.g.
>>> to make use of branches in the scalar implementation used in
>>> preroll/postroll of unrolled loops?
>>
>> All operations on pack are also defined on scalar so if you write a
>> polymorphic template functor, it will work on both. There is a simple
>> example of
>> this in the paper.
>
> While this works, if you do this you won't be able to use lazy branch
> evaluation in the scalar version.
>
> If you write
>
> c = if_else(a != 0, b/a, b);
>
> this is equivalent in scalar to
>
> c = (a != 0) ? b/a : b;
>
> except that in the case above you will always compute the division.

would it be possible to simply provide an overloaded operator() for
scalar types?

cheers, tim


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk