Skip to content

std::experimental::simd 1.0.0

Latest
Compare
Choose a tag to compare
@mattkretz mattkretz released this 07 May 16:18
· 339 commits to master since this release

This is the first release of an implementation of ISO/IEC TS 19570:2018 [Section 9] for GCC 9 / libstdc++.

It implements explicit support for SSE, AVX, and AVX512 as well as preliminary support for ARM NEON. All other platforms will currently fall back to only having simd_abi::scalar and simd_abi::fixed_size available.

This release supports the following implementation-defined ABI tags (please note that you normally should not use implementation-defined ABI tags — use compatible<T>, native<T>, or deduce_t<T, N>:

  • simd_abi::__sse,
  • simd_abi::__avx,
  • simd_abi::__avx512,
  • simd_abi::__neon64, and
  • simd_abi::__neon128.

There are more implementation-defined ABI tags planned for future releases using partial vector registers and combining multiple registers into one simd object. The latter differes from fixed_size in that fixed_size implements higher ABI stability guarantees and pays for those with possibly less efficient function parameter passing and less efficient masks.