1#ifndef NEFORCE_CORE_SIMD_TYPES_HPP__
2#define NEFORCE_CORE_SIMD_TYPES_HPP__
13#if defined(NEFORCE_SIMD_AVX2) || defined(NEFORCE_SIMD_AVX512F)
14# include <immintrin.h>
15#elif defined(NEFORCE_SIMD_SSE2)
16# include <emmintrin.h>
17#elif defined(NEFORCE_SIMD_NEON)
20NEFORCE_BEGIN_NAMESPACE__
29#ifdef NEFORCE_SIMD_SSE2
36#elif defined(NEFORCE_SIMD_NEON)
65#if defined(NEFORCE_SIMD_AVX2) || defined(NEFORCE_SIMD_AVX)
67# ifdef NEFORCE_SIMD_AVX2
94#ifdef NEFORCE_SIMD_AVX512F
119NEFORCE_END_NAMESPACE__
unsigned char byte_t
字节类型,定义为无符号字符
::__m128i vec128_t
128-bit 整型向量(16×i8 / 8×i16 / 4×i32 / 2×i64)
::__m128 vec128f_t
128-bit 单精度浮点向量(4×f32)
::__m128d vec128d_t
128-bit 双精度浮点向量(2×f64)
::__m256i vec256_t
256-bit 整型向量(32×i8 / 16×i16 / 8×i32 / 4×i64,需 AVX2)
::__m512i vec512_t
512-bit 整型向量(64×i8 / 32×i16 / 16×i32 / 8×i64)
::__m512 vec512f_t
512-bit 单精度浮点向量(16×f32)
::__m256d vec256d_t
256-bit 双精度浮点向量(4×f64)
::__m512d vec512d_t
512-bit 双精度浮点向量(8×f64)
::__m256 vec256f_t
256-bit 单精度浮点向量(8×f32)
constexpr decltype(auto) data(Container &cont) noexcept(noexcept(cont.data()))
获取容器的底层数据指针