00001 00002 // 00003 // Copyright (c) 2006 Audiokinetic Inc. / All Rights Reserved 00004 // 00006 00007 // AkSimd.h 00008 00011 00012 #pragma once 00013 00014 #if defined AK_CPU_X86 || defined AK_CPU_X86_64 00015 #define AKSIMD_GETELEMENT_V4I32( __vName, __num__ ) (__vName).m128i_i32[(__num__)] ///< Retrieve scalar element from vector. 00016 #define AKSIMD_GETELEMENT_V4F32( __vName, __num__ ) (__vName).m128_f32[(__num__)] ///< Retrieve scalar element from vector. 00017 #define AKSIMD_GETELEMENT_V2F32( __vName, __num__ ) (__vName).m64_f32[(__num__)] ///< Retrieve scalar element from vector. 00018 00019 #include <AK/SoundEngine/Platforms/SSE/AkSimd.h> 00020 #endif 00021 00022 #if defined AK_CPU_ARM_NEON 00023 #define AKSIMD_GETELEMENT_V4I32( __vName, __num__ ) (__vName).n128_i32[(__num__)] ///< Retrieve scalar element from vector. 00024 #define AKSIMD_GETELEMENT_V4F32( __vName, __num__ ) (__vName).n128_f32[(__num__)] ///< Retrieve scalar element from vector. 00025 #define AKSIMD_GETELEMENT_V2F32( __vName, __num__ ) (__vName).n64_f32[(__num__)] ///< Retrieve scalar element from vector. 00026 00027 #define AKSIMD_DECLARE_V4F32_TYPE DirectX::XMVECTORF32 00028 #define AKSIMD_DECLARE_V4F32( _x, _a, _b, _c, _d ) AKSIMD_DECLARE_V4F32_TYPE _x = { _a, _b, _c, _d } 00029 00030 #define AKSIMD_DECLARE_V4I32_TYPE DirectX::XMVECTORI32 00031 #define AKSIMD_DECLARE_V4I32( _x, _a, _b, _c, _d ) AKSIMD_DECLARE_V4I32_TYPE _x = { _a, _b, _c, _d } 00032 00033 #include <DirectXMath.h> 00034 #include <AK/SoundEngine/Platforms/arm_neon/AkSimd.h> 00035 #endif
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageRegister your project and we'll help you get started with no strings attached!
Get started with Wwise