diff options
author | Devtools Arcadia <arcadia-devtools@yandex-team.ru> | 2022-02-07 18:08:42 +0300 |
---|---|---|
committer | Devtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net> | 2022-02-07 18:08:42 +0300 |
commit | 1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch) | |
tree | e26c9fed0de5d9873cce7e00bc214573dc2195b7 /library/cpp/sse/sse.h | |
download | ydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz |
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'library/cpp/sse/sse.h')
-rw-r--r-- | library/cpp/sse/sse.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/library/cpp/sse/sse.h b/library/cpp/sse/sse.h new file mode 100644 index 00000000000..19bac17de0b --- /dev/null +++ b/library/cpp/sse/sse.h @@ -0,0 +1,33 @@ +#pragma once + +/* + The header chooses appropriate SSE support. + On Intel: SSE intrinsics + On ARM64: translation to NEON intrinsics or software emulation + On PowerPc: translation to Altivec intrinsics or software emulation +*/ +/* Author: Vitaliy Manushkin <agri@yandex-team.ru>, Danila Kutenin <danlark@yandex-team.ru> */ + +#include <util/system/platform.h> + +#if (defined(_i386_) || defined(_x86_64_)) && defined(_sse_) +#include <xmmintrin.h> +#include <emmintrin.h> +#include <pmmintrin.h> +#define ARCADIA_SSE +#if defined(_ssse3_) +#include <tmmintrin.h> +#endif +#if defined(_sse4_1_) +#include <smmintrin.h> +#endif +#if defined(_sse4_2_) +#include <nmmintrin.h> +#endif +#elif defined(_arm64_) +#include "sse2neon.h" +#define ARCADIA_SSE +#elif defined(_ppc64_) +#include "powerpc.h" +#define ARCADIA_SSE +#endif |