目录

include/AK/SoundEngine/Platforms/Windows/AkSimd.h

Go to the documentation of this file.
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