[詳解]
37 #define AKSIMD_GETELEMENT_V4F32( __vName, __num__ ) ((AkReal32*)&(__vName))[(__num__)]
38 #define AKSIMD_GETELEMENT_V2F32( __vName, __num__ ) ((AkReal32*)&(__vName))[(__num__)]
39 #define AKSIMD_GETELEMENT_V2F64( __vName, __num__ ) ((AkReal64*)&(__vName))[(__num__)]
40 #define AKSIMD_GETELEMENT_V4I32( __vName, __num__ ) ((AkInt32*)&(__vName))[(__num__)]
41 #define AKSIMD_GETELEMENT_V2I64( __vName, __num__ ) ((AkInt64*)&(__vName))[(__num__)]
46 #if defined AK_CPU_X86 || defined AK_CPU_X86_64 || defined AK_CPU_WASM
48 #elif defined AK_CPU_ARM_NEON
51 #include <AK/SoundEngine/Platforms/Generic/AkSimd.h>
58 #ifndef AKSIMD_ASSERTFLUSHZEROMODE
59 #define AKSIMD_ASSERTFLUSHZEROMODE
66 inline operator const AkReal32* ()
const noexcept {
return f; }
72 inline operator const AkInt32* ()
const noexcept {
return i; }
75 #define AKSIMD_SETVR_V2F64( _a, _b ) AKSIMD_SETV_V2F64( (_b), (_a) )
76 #define AKSIMD_SETVR_V4F32( _a, _b, _c, _d ) AKSIMD_SETV_V4F32( (_d), (_c), (_b), (_a) )
77 #define AKSIMD_SETVR_V2I64( _a, _b) AKSIMD_SETV_V2I64( (_b), (_a) )
78 #define AKSIMD_SETVR_V4I32( _a, _b, _c, _d ) AKSIMD_SETV_V4I32( (_d), (_c), (_b), (_a) )
79 #define AKSIMD_DECLARE_V4F32( _x, _a, _b, _c, _d ) AKSIMD_DECLARE_V4F32_TYPE _x = { _a, _b, _c, _d };
80 #define AKSIMD_DECLARE_V4I32( _x, _a, _b, _c, _d ) AKSIMD_DECLARE_V4I32_TYPE _x = { _a, _b, _c, _d };
82 #define AKSIMD_SETELEMENT_V4F32( __vName__, __num__, __value__ ) ( AKSIMD_GETELEMENT_V4F32( __vName__, __num__ ) = (__value__) )
AkForceInline void AKSIMD_TRANSPOSE4X4_V4F32(AKSIMD_V4F32 &A, AKSIMD_V4F32 &B, AKSIMD_V4F32 &C, AKSIMD_V4F32 &D)
float AkReal32
32-bit floating point
int32_t AkInt32
Signed 32-bit integer
AK_ALIGN_SIMD(AkInt32 i[4])
AK_ALIGN_SIMD(AkReal32 f[4])
あなたのプロジェクトについて教えてください。ご不明な点はありませんか。
プロジェクトを登録していただくことで、ご利用開始のサポートをいたします。
Wwiseからはじめよう