File tree 2 files changed +23
-1
lines changed
2 files changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -31,6 +31,28 @@ bool block_class_is_subset(
31
31
size_t block_class_len ) {
32
32
size_t i = 0 ;
33
33
34
+ #if defined(__AVX512F__ ) && defined(__AVX512BW__ )
35
+ for (; i / 32 < block_class_len / 32 ; i += 32 ) {
36
+ const __m512i block_class_vec = _mm512_loadu_si512 (
37
+ (__m512i * )& block_class [i ]);
38
+ const __m512i block_vec = _mm512_set1_epi16 (block );
39
+ const __mmask32 block_cmp = _mm512_cmpeq_epi16_mask (block_vec , block_class_vec );
40
+ if (block_cmp ) {
41
+ return true;
42
+ }
43
+ }
44
+ #endif
45
+ #if defined(__AVX2__ )
46
+ for (; i / 16 < block_class_len / 16 ; i += 16 ) {
47
+ const __m256i block_class_vec = _mm256_loadu_si256 (
48
+ (__m256i * )& block_class [i ]);
49
+ const __m256i block_vec = _mm256_set1_epi16 (block );
50
+ const __m256i block_cmp = _mm256_cmpeq_epi16 (block_vec , block_class_vec );
51
+ if (_mm256_movemask_epi8 (block_cmp )) {
52
+ return true;
53
+ }
54
+ }
55
+ #endif
34
56
#ifdef __SSE2__
35
57
for (; i / 8 < block_class_len / 8 ; i += 8 ) {
36
58
const __m128i block_class_vec = _mm_loadu_si128 (
Original file line number Diff line number Diff line change 31
31
32
32
// increment this value if you've made a change to the c extension
33
33
// and want to force users to rebuild
34
- #define OVERVIEWER_EXTENSION_VERSION 109
34
+ #define OVERVIEWER_EXTENSION_VERSION 110
35
35
36
36
#include <stdbool.h>
37
37
#include <stdint.h>
You can’t perform that action at this time.
0 commit comments