@@ -14,11 +14,11 @@ struct avx512_16bit_swizzle_ops {
14
14
__m512i v = vtype::cast_to(reg);
15
15
16
16
if constexpr (scale == 2) {
17
- std::vector< uint16_t> arr
17
+ constexpr static uint16_t arr[]
18
18
= {1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11,
19
19
10, 13, 12, 15, 14, 17, 16, 19, 18, 21, 20,
20
20
23, 22, 25, 24, 27, 26, 29, 28, 31, 30};
21
- __m512i mask = _mm512_loadu_si512(arr.data() );
21
+ __m512i mask = _mm512_loadu_si512(arr);
22
22
v = _mm512_permutexvar_epi16(mask, v);
23
23
}
24
24
else if constexpr (scale == 4) {
@@ -48,27 +48,27 @@ struct avx512_16bit_swizzle_ops {
48
48
49
49
if constexpr (scale == 2) { return swap_n<vtype, 2>(reg); }
50
50
else if constexpr (scale == 4) {
51
- std::vector< uint16_t> arr
51
+ constexpr static uint16_t arr[]
52
52
= {3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9,
53
53
8, 15, 14, 13, 12, 19, 18, 17, 16, 23, 22,
54
54
21, 20, 27, 26, 25, 24, 31, 30, 29, 28};
55
- __m512i mask = _mm512_loadu_si512(arr.data() );
55
+ __m512i mask = _mm512_loadu_si512(arr);
56
56
v = _mm512_permutexvar_epi16(mask, v);
57
57
}
58
58
else if constexpr (scale == 8) {
59
- std::vector<uint16_t> arr
59
+ constexpr static int16_t arr[]
60
60
= {7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13,
61
61
12, 11, 10, 9, 8, 23, 22, 21, 20, 19, 18,
62
62
17, 16, 31, 30, 29, 28, 27, 26, 25, 24};
63
- __m512i mask = _mm512_loadu_si512(arr.data() );
63
+ __m512i mask = _mm512_loadu_si512(arr);
64
64
v = _mm512_permutexvar_epi16(mask, v);
65
65
}
66
66
else if constexpr (scale == 16) {
67
- std::vector< uint16_t> arr
67
+ constexpr static uint16_t arr[]
68
68
= {15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5,
69
69
4, 3, 2, 1, 0, 31, 30, 29, 28, 27, 26,
70
70
25, 24, 23, 22, 21, 20, 19, 18, 17, 16};
71
- __m512i mask = _mm512_loadu_si512(arr.data() );
71
+ __m512i mask = _mm512_loadu_si512(arr);
72
72
v = _mm512_permutexvar_epi16(mask, v);
73
73
}
74
74
else if constexpr (scale == 32) {
0 commit comments