Use AudioMatrixSSE(+sse2neon) on arm64

This commit is contained in:
Luke Street 2021-04-18 11:59:34 -04:00
parent 09b788d20b
commit e23eedb338
5 changed files with 6304 additions and 5 deletions

View File

@ -117,7 +117,10 @@ if(NOT GEKKO AND NOT CAFE AND NOT WINDOWS_STORE AND NOT NX AND NOT APPLE)
endif() endif()
set(AudioMatrix_SRC lib/audiodev/AudioMatrix.cpp) set(AudioMatrix_SRC lib/audiodev/AudioMatrix.cpp)
if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL x86_64) if(CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64
OR CMAKE_SYSTEM_PROCESSOR STREQUAL AMD64
OR CMAKE_SYSTEM_PROCESSOR STREQUAL arm64
OR CMAKE_SYSTEM_PROCESSOR STREQUAL ARM64)
set(AudioMatrix_SRC lib/audiodev/AudioMatrixSSE.cpp) set(AudioMatrix_SRC lib/audiodev/AudioMatrixSSE.cpp)
endif() endif()

View File

@ -7,8 +7,11 @@
#include "boo/audiodev/IAudioVoice.hpp" #include "boo/audiodev/IAudioVoice.hpp"
#if __SSE__ #if defined(__x86_64__) || defined(_M_AMD64)
#include <immintrin.h> #include <immintrin.h>
#elif defined(__aarch64__) || defined(_M_ARM64)
#define __SSE__ 1
#include "sse2neon.h"
#endif #endif
namespace boo { namespace boo {

View File

@ -1,8 +1,6 @@
#include "lib/audiodev/AudioMatrix.hpp" #include "lib/audiodev/AudioMatrix.hpp"
#include "lib/audiodev/AudioVoiceEngine.hpp" #include "lib/audiodev/AudioVoiceEngine.hpp"
#include <immintrin.h>
namespace boo { namespace boo {
union TVectorUnion { union TVectorUnion {

View File

@ -11,8 +11,11 @@
#include "boo/audiodev/IAudioSubmix.hpp" #include "boo/audiodev/IAudioSubmix.hpp"
#include "lib/audiodev/Common.hpp" #include "lib/audiodev/Common.hpp"
#if __SSE__ #if defined(__x86_64__) || defined(_M_AMD64)
#include <immintrin.h> #include <immintrin.h>
#elif defined(__aarch64__) || defined(_M_ARM64)
#define __SSE__ 1
#include "sse2neon.h"
#endif #endif
struct AudioUnitVoiceEngine; struct AudioUnitVoiceEngine;

6292
lib/audiodev/sse2neon.h Normal file

File diff suppressed because it is too large Load Diff