menu
Version
2021.1.14.8108
2024.1.3.8749
2023.1.11.8682
2022.1.18.8567
2021.1.14.8108
2019.2.15.7667
2019.1.11.7296
2018.1.11.6987
2017.2.10.6745
2017.1.9.6501
2016.2.6.6153
2015.1.9.5624
2024.1.3.8749
2023.1.11.8682
2022.1.18.8567
2021.1.14.8108
2019.2.15.7667
2019.1.11.7296
2018.1.11.6987
2017.2.10.6745
2017.1.9.6501
2016.2.6.6153
2015.1.9.5624
Wwise SDK 2021.1.14
|
#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_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