Boost logo

Boost :

Subject: [boost] [SIMD] Pre-review questions
From: Artyom Beilis (artyom.beilis_at_[hidden])
Date: 2017-03-26 06:37:09


Hello,

I have several questions regarding Boost.SIMD (for pre-review)

1. What is boost::simd::pack::storage_type I can't find it in
documentation. Is it the "native register" like __m128i for
pack<int,4>? If the answer is no, how do I get access to underlying
type?
2. I can't find in documentation how to performs casts between
different types: I see in docs split_low (actually after I grepped for
_mm_unpacklo) but I failed to find how to use one - there is no
documentation regarding conversion/casting operation or at least I
failed to find one.
3. Is there more convenient way to perform basic saturated operation
for example if I want to calc abs diff of two bs::pack<unsigned
char,16> values a,b I need to write

   bs::saturated_(be::minus)(a,b) + bs::saturated_(bs::minus)(b,a)

  It is quite inconvenient especially when most of operations you want
to do are saturated.

4. Why Boost.SIMD is restricted to C++11? Most of the stuff is
implementable withing C++2003, it severely limits the usability of the
library for existing projects that can't trivially switch to new C++
standard (and there are too many in the "real world" industry)

Thanks,
   Artyom


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