Skip to content
Povilas Kanapickas edited this page Mar 16, 2016 · 26 revisions

Releases

The library is developed in C++11. A separate, C++03 branch is provided for compatibility with older compilers. Note that the master branch is unstable. If unsure, use one of the releases or at least the latest beta.

2.0 release candidate

C++11 version

C++03-compatible version

The library supports the following architectures and instruction sets:

  • x86, x86-64: SSE2, SSE3, SSSE3, SSE4.1, AVX, AVX2, FMA3, FMA4, AVX-512F, XOP
  • ARM, ARM64: NEON
  • PowerPC: Altivec

Supported compilers:

  • C++11 version:

    • GCC: 4.8-5.3
    • Clang: 3.3-3.8
    • MSVC: 2013
    • ICC: 2013, 2015
  • C++98 version

    • GCC: 4.4-5.3
    • Clang: 3.3-3.8
    • MSVC: 2013
    • ICC: 2013, 2015

Clang 3.3 is not supported on ARM. MSVC and ICC are only supported on x86 and x86-64.

Newer versions of the aforementioned compilers will generally work with either C++11 or C++98 version of the library. Older versions of these compilers will generally work with the C++98 version of the library.

1.0

C++11 version

C++03-compatible version

Supported instruction sets: SSE2, SSE3, SSSE3, SSE4.1, AVX, AVX2, FMA3, FMA4, XOP and NEON

Supported compilers:

  • C++11 version:

    • GCC: 4.8.1, 4.7.3
    • Clang: 3.3, 3.4
  • C++98 version

    • GCC: 4.8.1, 4.7.3
    • Clang: 3.3, 3.4

Roadmap

Planned future changes:

  • Support for small vectors, such as int32<1>. Rationale: Currently there's no way to specify that we indeed want to perform operation on small number of vector elements. A possible solution is to extract appropriate C++ scalars such as int from the vector types and use regular C++. The problem with that is that often the most efficient way to do this is to keep the data in the SIMD execution domain and simply perform some wider vector operation. This is quite difficult for the compiler to spot. Implementing small vectors would allow to select the most efficient implementation for the target architecture.
Clone this wiki locally