Wwise SDK 2023.1.9
|
#include <AK/SoundEngine/Common/AkTypes.h>
#include <AK/SoundEngine/Platforms/SSE/AkSimd.h>
#include <AK/SoundEngine/Platforms/SSE/AkSimdAvx.h>
#include <string.h>
Go to the source code of this file.
Macros | |
#define | _GATHER_SIM_FETCH(_x) |
#define | _GATHER_SIM_FETCH(_x) |
AKSIMD shuffling | |
#define | AKSIMD_SHUFFLEB_V8I32(a, b) _mm256_shuffle_epi8(a, b) |
#define | AKSIMD_BLEND_V16I16(a, b, i) _mm256_blend_epi16(a, b, i) |
#define | AKSIMD_INSERT_V2I128(a, m128, idx) _mm256_inserti128_si256(a, m128, idx) |
#define | AKSIMD_PERMUTE_2X128_V8I32(a, b, i) _mm256_permute2x128_si256(a, b, i) |
#define | AKSIMD_DEINTERLEAVELANES_LO_V8I32(a, b) AKSIMD_PERMUTE_2X128_V8I32(a, b, AKSIMD_PERMUTE128(2, 0)) |
Selects the lower of each of the 128b lanes in a and b to be the result ( B A ), ( D C ) -> ( C A ) More... | |
#define | AKSIMD_DEINTERLEAVELANES_HI_V8I32(a, b) AKSIMD_PERMUTE_2X128_V8I32(a, b, AKSIMD_PERMUTE128(3, 1)) |
Selects the higher of each of the 128b lanes in a and b to be the result ( B A ), ( D C) -> ( D B ) More... | |
#define | AKSIMD_PERMUTE_4X64_V8F32(a, i) _mm256_castpd_ps(_mm256_permute4x64_pd(_mm256_castps_pd(a), i)) |
AKSIMD conversion | |
#define | AKSIMD_CONVERT_V8I16_TO_V8I32(__vec__) _mm256_cvtepi16_epi32( (__vec__) ) |
Converts the eight signed 16b integer values of a to signed 32-bit integer values. More... | |
AKSIMD integer arithmetic | |
#define | AKSIMD_ADD_V8I32(a, b) _mm256_add_epi32( a, b ) |
Adds the eight integer values of a and b. More... | |
#define | AKSIMD_CMPLT_V8I32(a, b) _mm256_cmpgt_epi32( b, a ) |
#define | AKSIMD_CMPGT_V8I32(a, b) _mm256_cmpgt_epi32( a, b ) |
#define | AKSIMD_OR_V8I32(a, b) _mm256_or_si256(a,b) |
#define | AKSIMD_XOR_V8I32(a, b) _mm256_xor_si256(a,b) |
#define | AKSIMD_SUB_V8I32(a, b) _mm256_sub_epi32(a,b) |
#define | AKSIMD_AND_V8I32(__a__, __b__) _mm256_and_si256( (__a__), (__b__) ) |
#define | AKSIMD_MULLO_V8I32(a, b) _mm256_mullo_epi32(a, b) |
Multiplies each 32-bit int value of a by b and returns the lower 32b of the result (no overflow or clamp) More... | |
#define | AKSIMD_MULLO16_V8I32(a, b) _mm256_mullo_epi16(a, b) |
Multiplies the low 16bits of a by b and stores it in V8I32 (no overflow) More... | |
#define | AKSIMD_SUB_V16I16(a, b) _mm256_sub_epi16( a, b ) |
Subtracts each 16b integer of a by b. More... | |
#define | AKSIMD_CMPGT_V16I16(__a__, __b__) _mm256_cmpgt_epi16( (__a__), (__b__) ) |
AKSIMD packing / unpacking | |
#define | AKSIMD_UNPACKLO_VECTOR16I16(a, b) _mm256_unpacklo_epi16( a, b ) |
#define | AKSIMD_UNPACKHI_VECTOR16I16(a, b) _mm256_unpackhi_epi16( a, b ) |
#define | AKSIMD_PACKS_V8I32(a, b) _mm256_packs_epi32( a, b ) |
AKSIMD shifting | |
#define | AKSIMD_SHIFTLEFT_V8I32(__vec__, __shiftBy__) _mm256_slli_epi32( (__vec__), (__shiftBy__) ) |
#define | AKSIMD_SHIFTLEFT16_V8I32(__vec__) |
#define | AKSIMD_SHIFTRIGHT_V8I32(__vec__, __shiftBy__) _mm256_srli_epi32( (__vec__), (__shiftBy__) ) |
#define | AKSIMD_SHIFTRIGHTARITH_V8I32(__vec__, __shiftBy__) _mm256_srai_epi32( (__vec__), (__shiftBy__) ) |
Functions | |
AKSIMD gather | |
template<typename T , typename Function > | |
AKSIMD_V8I32 | AKSIMD_GATHER_EPI32 (const T *__restrict base_ptr, Function expr) |
template<typename T , typename Function > | |
AKSIMD_V8I32 | AKSIMD_GATHER_EPI64 (const T *base_ptr, Function expr) |
template<typename T , typename Function > | |
AKSIMD_V8F32 | AKSIMD_GATHER_PS (const T *base_ptr, Function expr) |
template<typename T , typename Function > | |
AKSIMD_V4F64 | AKSIMD_GATHER_PD (const T *base_ptr, Function expr) |
AKSIMD arithmetic | |
#define | AKSIMD_MADDSUB_V8F32(__a__, __b__, __c__) _mm256_fmaddsub_ps( (__a__), (__b__), (__c__) ) |
Vector multiply-add-sub operation. More... | |
#define | AKSIMD_MSUBADD_V8F32(__a__, __b__, __c__) _mm256_fmsubadd_ps( (__a__), (__b__), (__c__) ) |
#define | AKSIMD_MADD_V8F32(__a__, __b__, __c__) _mm256_fmadd_ps( (__a__), (__b__) , (__c__) ) |
Vector multiply-add operation. More... | |
#define | AKSIMD_MSUB_V8F32(__a__, __b__, __c__) _mm256_fmsub_ps( (__a__), (__b__) , (__c__) ) |
static AkForceInline AKSIMD_V8F32 | AKSIMD_COMPLEXMUL_AVX2 (const AKSIMD_V8F32 cIn1, const AKSIMD_V8F32 cIn2) |
AKSIMD - AVX2 implementation
Definition in file AkSimdAvx2.h.
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageRegister your project and we'll help you get started with no strings attached!
Get started with Wwise