バージョン

menu_open
Wwise SDK 2021.1.14
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 ) [詳解]
 
#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 [詳解]
 
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_SHIFTRIGHT_V8I32(__vec__, __shiftBy__)    _mm256_srli_epi32( (__vec__), (__shiftBy__) )
 
#define  AKSIMD_SHIFTRIGHTARITH_V8I32(__vec__, __shiftBy__)    _mm256_srai_epi32( (__vec__), (__shiftBy__) )
 

関数

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. [詳解]
 
#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. [詳解]
 
#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

AkSimdAvx2.h に定義があります。


このページはお役に立ちましたか?

サポートは必要ですか?

ご質問や問題、ご不明点はございますか?お気軽にお問い合わせください。

サポートページをご確認ください

あなたのプロジェクトについて教えてください。ご不明な点はありませんか。

プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。

Wwiseからはじめよう