Tables.hpp 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #ifndef __TABLES_HPP__
  2. #define __TABLES_HPP__
  3. #include <stdint.h>
  4. #ifdef __AVX2__
  5. # include <immintrin.h>
  6. #endif
  7. #ifdef __SSE4_1__
  8. # include <smmintrin.h>
  9. #endif
  10. #ifdef __ARM_NEON
  11. # include <arm_neon.h>
  12. #endif
  13. extern const int32_t g_table[8][4];
  14. extern const int64_t g_table256[8][4];
  15. extern const uint32_t g_id[4][16];
  16. extern const uint32_t g_avg2[16];
  17. extern const uint32_t g_flags[64];
  18. extern const int32_t g_alpha[16][8];
  19. extern const int32_t g_alpha11Mul[16];
  20. extern const int32_t g_alphaRange[16];
  21. #ifdef __SSE4_1__
  22. extern const __m128i g_table_SIMD[2];
  23. extern const __m128i g_table128_SIMD[2];
  24. extern const __m128i g_table256_SIMD[4];
  25. extern const __m128i g_alpha_SIMD[16];
  26. extern const __m128i g_alphaRange_SIMD;
  27. #endif
  28. #ifdef __AVX2__
  29. extern const __m256i g_alpha_AVX[8];
  30. extern const __m256i g_alphaRange_AVX;
  31. #endif
  32. #ifdef __ARM_NEON
  33. extern const int16x8_t g_table128_NEON[2];
  34. extern const int32x4_t g_table256_NEON[4];
  35. extern const int16x8_t g_alpha_NEON[16];
  36. extern const int16x8_t g_alphaRange_NEON;
  37. #endif
  38. #endif