sse.h 800 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. /*
  3. The header chooses appropriate SSE support.
  4. On Intel: SSE intrinsics
  5. On ARM64: translation to NEON intrinsics or software emulation
  6. On PowerPc: translation to Altivec intrinsics or software emulation
  7. */
  8. /* Author: Vitaliy Manushkin <agri@yandex-team.ru>, Danila Kutenin <danlark@yandex-team.ru> */
  9. #include <util/system/platform.h>
  10. #if (defined(_i386_) || defined(_x86_64_)) && defined(_sse_)
  11. #include <xmmintrin.h>
  12. #include <emmintrin.h>
  13. #include <pmmintrin.h>
  14. #define ARCADIA_SSE
  15. #if defined(_ssse3_)
  16. #include <tmmintrin.h>
  17. #endif
  18. #if defined(_sse4_1_)
  19. #include <smmintrin.h>
  20. #endif
  21. #if defined(_sse4_2_)
  22. #include <nmmintrin.h>
  23. #endif
  24. #elif defined(_arm64_)
  25. #include "sse2neon.h"
  26. #define ARCADIA_SSE
  27. #elif defined(_ppc64_)
  28. #include "powerpc.h"
  29. #define ARCADIA_SSE
  30. #endif