Vc 1.3.0
Vc is an open source library to ease explicit vectorization of C++ code. It has an intuitive API and provides portability between different compilers and compiler versions as well as portability between different vector instruction sets.
Vc 1.3.0 contains API cleanups, bug fixes, important compiler-specific optimizations & workarounds, and finally supports MSVC again
User Changelog
- 64-bit MS VisualStudio 2015 support. (See #119 for some of the gory details.)
- ICC 17 support (#143).
- GCC 6 support (#125).
- Workarounds for bad ICC code-gen (#135). Now Vc not only works correctly when compiled with ICC, but also performs as good (or better) as GCC and Clang.
- Safer and more restrictive subscripting on
Vector
andMask
. There is a minor source compatibility break involved, sinceVector::operator[]
returned lvalue references before Vc 1.3 and returns a smart reference (rvalue) now. This change reduces the chance of miscompilation & internal compiler errors and reduces the reliance on non-standard C++ extensions. - Support for
x32
compilation (like x86_64 but with 32-bit pointers). - Added scatter interface to
SimdArray
(thanks to Kay Jahnke). simd_cast
properly works with ADL now (i.e. you don't have to write fully qualifiedVc::simd_cast
anymore).- Added
simd_for_each_n
(thanks to Hartmut Kaiser).