Architecture manipulation

xsimd provides an high level description of the instruction sets it manipulates. The mentionned types are primarily used as template parameters for batch, and when interacting with xsimd::dispatch().

struct xsimd::avx2
#include <xsimd_avx2_register.hpp>

AVX2 instructions.

Inherits from xsimd::avx

Subclassed by xsimd::fma3< avx2 >

struct xsimd::avx512bw
#include <xsimd_avx512bw_register.hpp>

AVX512BW instructions.

Inherits from xsimd::avx512dq

struct xsimd::avx512cd
#include <xsimd_avx512cd_register.hpp>

AVX512CD instrutions.

Inherits from xsimd::avx512f

Subclassed by xsimd::avx512dq

struct xsimd::avx512dq
#include <xsimd_avx512dq_register.hpp>

AVX512DQ instructions.

Inherits from xsimd::avx512cd

Subclassed by xsimd::avx512bw

struct xsimd::avx512f
#include <xsimd_avx512f_register.hpp>

AVX512F instructions.

Inherits from xsimd::generic

Subclassed by xsimd::avx512cd

struct xsimd::avx
#include <xsimd_avx_register.hpp>

AVX instructions.

Inherits from xsimd::generic

Subclassed by xsimd::avx2, xsimd::fma3< avx >

template <>
template<>
struct xsimd::fma3<avx>
#include <xsimd_fma3_avx_register.hpp>

AVX + FMA instructions.

Inherits from xsimd::avx

template <>
template<>
struct xsimd::fma3<avx2>
#include <xsimd_fma3_avx2_register.hpp>

AVX2 + FMA instructions.

Inherits from xsimd::avx2

template <>
template<>
struct xsimd::fma3<sse4_2>
#include <xsimd_fma3_sse_register.hpp>

SSE4.2 + FMA instructions.

Inherits from xsimd::sse4_2

struct xsimd::fma4
#include <xsimd_fma4_register.hpp>

FMA4 instructions.

Inherits from xsimd::sse4_2

struct xsimd::neon64
#include <xsimd_neon64_register.hpp>

NEON instructions for arm64.

Inherits from xsimd::neon

struct xsimd::neon
#include <xsimd_neon_register.hpp>

NEON instructions for arm32.

Inherits from xsimd::generic

Subclassed by xsimd::neon64

struct xsimd::sse2
#include <xsimd_sse2_register.hpp>

SSE2 instructions.

Inherits from xsimd::generic

Subclassed by xsimd::sse3

struct xsimd::sse3
#include <xsimd_sse3_register.hpp>

SSE3 instructions.

Inherits from xsimd::sse2

Subclassed by xsimd::ssse3

struct xsimd::sse4_1
#include <xsimd_sse4_1_register.hpp>

SSE4.1 instructions.

Inherits from xsimd::ssse3

Subclassed by xsimd::sse4_2

struct xsimd::sse4_2
#include <xsimd_sse4_2_register.hpp>

SSE4.2 instructions.

Inherits from xsimd::sse4_1

Subclassed by xsimd::fma3< sse4_2 >, xsimd::fma4

struct xsimd::ssse3
#include <xsimd_ssse3_register.hpp>

SSSE3 instructions.

Inherits from xsimd::sse3

Subclassed by xsimd::sse4_1

template <size_t Width>
struct xsimd::detail::sve
#include <xsimd_sve_register.hpp>

SVE instructions (fixed vector size) for arm64.

Inherits from xsimd::generic