diff options
| author | Erik Kundiman <erik@megapahit.org> | 2023-08-17 21:01:51 +0800 | 
|---|---|---|
| committer | Erik Kundiman <erik@megapahit.org> | 2023-08-17 21:01:51 +0800 | 
| commit | 84b72f12d42e08fe989752ce36e1972bb11c8d70 (patch) | |
| tree | 22a8ad377a3364705c6c26ed50444e8c583ce58a | |
| parent | eadd80cf95cc25565a3bdcea179503d21ba5ae11 (diff) | |
Neon is used as an alternative to SSE2
on Arm systems.
| -rw-r--r-- | indra/llcommon/llmemory.h | 4 | ||||
| -rw-r--r-- | indra/llmath/llsimdmath.h | 6 | 
2 files changed, 9 insertions, 1 deletions
| diff --git a/indra/llcommon/llmemory.h b/indra/llcommon/llmemory.h index b67a8c9bc0..dd9867c9b3 100644 --- a/indra/llcommon/llmemory.h +++ b/indra/llcommon/llmemory.h @@ -71,7 +71,11 @@ LL_COMMON_API void ll_assert_aligned_func(uintptr_t ptr,U32 alignment);  #define ll_assert_aligned(ptr,alignment)  #endif +#if defined(__i386__) || defined(__x86_64__)  #include <xmmintrin.h> +#else +#include <sse2neon.h> +#endif  template <typename T> T* LL_NEXT_ALIGNED_ADDRESS(T* address)   {  diff --git a/indra/llmath/llsimdmath.h b/indra/llmath/llsimdmath.h index 54a275633f..a6f57d1853 100644 --- a/indra/llmath/llsimdmath.h +++ b/indra/llmath/llsimdmath.h @@ -31,7 +31,7 @@  #error "Please include llmath.h before this file."  #endif -#if ( ( LL_DARWIN || LL_LINUX ) && !(__SSE2__) ) || ( LL_WINDOWS && ( _M_IX86_FP < 2 && ADDRESS_SIZE == 32 ) ) +#if ( ( LL_DARWIN || LL_LINUX ) && !(__SSE2__ || __ARM_NEON) ) || ( LL_WINDOWS && ( _M_IX86_FP < 2 && ADDRESS_SIZE == 32 ) )  #error SSE2 not enabled. LLVector4a and related class will not compile.  #endif @@ -39,8 +39,12 @@  #include <stdint.h>  #endif +#if defined(__i386__) || defined(__x86_64__)  #include <xmmintrin.h>  #include <emmintrin.h> +#else +#include <sse2neon.h> +#endif  #include "llmemory.h"  #include "llsimdtypes.h" | 
