$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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