バージョン

menu_open
Wwise SDK 2024.1.1
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_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__) )
 

関数

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からはじめよう