Wwise SDK 2019.2.15
_ak_simd_avx2_8h_source
Version
menu_open
link
Wwise SDK 2019.2.15
|
AkSimdAvx2.h
Go to the documentation of this file.
50 /// Cross-platform SIMD multiplication of 8 complex data elements with interleaved real and imaginary parts,
52 static AkForceInline AKSIMD_V8F32 AKSIMD_COMPLEXMUL_AVX2(const AKSIMD_V8F32 cIn1, const AKSIMD_V8F32 cIn2)
55 __m256 in2Shuf = _mm256_shuffle_ps(cIn2, cIn2, 0xB1); // shuf multiplicand (c3, d3, c2, d2, c1, d1, c0, d0)
57 __m256 temp = _mm256_mul_ps(imag1Ext, in2Shuf); // temp (b3c3, b3d3, b2c2, b2d2, b1c1, b1d1, b0c0, b0d0)
58 __m256 out = _mm256_fmaddsub_ps(real1Ext, cIn2, temp); // final (a3d3+b3c3, a3c3-b3d3, a2d2+b2c2, a2c2-b2d2, a1d1+b1c1, a1c1-b1d1, a0d0+b0c0, a0c0-b0d0)
69 /// For each 8b value in a, move it to the designated location in each 128b lane specified by the
70 /// corresponding control byte in b (or, if the control byte is >=16, set the dest to zero) (see _mm_shuffle_epi8)
73 /// For each 16b integer, select one of the values from a and b using the provided control mask - if the
74 /// nth bit is false, the nth value from a will be selected; if true, the value from b will be selected.
84 /// Selects the lower of each of the 128b lanes in a and b to be the result ( B A ), ( D C ) -> ( C A )
85 #define AKSIMD_DEINTERLEAVELANES_LO_V8I32( a, b ) AKSIMD_PERMUTE_2X128_V8I32(a, b, AKSIMD_PERMUTE128(2, 0))
87 /// Selects the higher of each of the 128b lanes in a and b to be the result ( B A ), ( D C) -> ( D B )
88 #define AKSIMD_DEINTERLEAVELANES_HI_V8I32( a, b ) AKSIMD_PERMUTE_2X128_V8I32(a, b, AKSIMD_PERMUTE128(3, 1))
AKSIMD_V8F32 AKSIMD_GATHER_PD(const T *base_ptr, Function expr)
Definition: AkSimdAvx2.h:235
static AkForceInline AKSIMD_V8F32 AKSIMD_COMPLEXMUL_AVX2(const AKSIMD_V8F32 cIn1, const AKSIMD_V8F32 cIn2)
Definition: AkSimdAvx2.h:52
AKSIMD_V8F32 AKSIMD_GATHER_PS(const T *base_ptr, Function expr)
Definition: AkSimdAvx2.h:229
#define _GATHER_SIM_FETCH(_x)
AKSIMD_V8I32 AKSIMD_GATHER_EPI32(const T *__restrict base_ptr, Function expr)
Definition: AkSimdAvx2.h:185
AKSIMD_V8I32 AKSIMD_GATHER_EPI64(const T *base_ptr, Function expr)
Definition: AkSimdAvx2.h:209
Was this page helpful?
Need Support?
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageTell us about your project. We're here to help.
Register your project and we'll help you get started with no strings attached!
Get started with Wwise