版本

menu_open
Wwise SDK 2019.2.15
AkSimdAvx2.h 文件参考

浏览源代码.

宏定义

#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 ) 更多...
 
#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 ) 更多...
 
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 更多...
 
AKSIMD integer arithmetic
#define  AKSIMD_ADD_V8I32(a, b)   _mm256_add_epi32( a, b )
  Adds the eight integer values of a and b 更多...
 
#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) 更多...
 
#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) 更多...
 
#define  AKSIMD_SUB_V16I16(a, b)   _mm256_sub_epi16( a, b )
  Subtracts each 16b integer of a by b 更多...
 
#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_SHIFTRIGHTARITH_V8I32(__vec__, __shiftBy__)    _mm256_srai_epi32( (__vec__), (__shiftBy__) )
 

函数

AKSIMD arithmetic
static AkForceInline AKSIMD_V8F32  AKSIMD_COMPLEXMUL_AVX2 (const AKSIMD_V8F32 cIn1, const AKSIMD_V8F32 cIn2)
 
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_V8F32  AKSIMD_GATHER_PD (const T *base_ptr, Function expr)
 

详细描述

AKSIMD - AVX2 implementation

在文件 AkSimdAvx2.h 中定义.


此页面对您是否有帮助?

需要技术支持?

仍有疑问?或者问题?需要更多信息?欢迎联系我们,我们可以提供帮助!

查看我们的“技术支持”页面

介绍一下自己的项目。我们会竭力为您提供帮助。

来注册自己的项目,我们帮您快速入门,不带任何附加条件!

开始 Wwise 之旅