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