_mm256_cmpgt_epu8_mask link error

It is quite hard to find the problem. When I could use _mm256_cmpeq_epi8, _mm256_add_epi32 already. But when I want to use the _mm256_cmpgt_epu8_mask, compile fails.
Do you know how to solve it?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
FAILED: CMakeFiles/imlabdb.dir/tools/imlabdb.cc.o 
/usr/bin/c++   -I../include -Ivendor/gtm/gtest/include -isystem vendor/gflags/include -mavx -march=haswell -msse4.1 -msse4.1 -msse4.2 -g   -pthread -std=gnu++1z -MD -MT 
CMakeFiles/imlabdb.dir/tools/imlabdb.cc.o -MF CMakeFiles/imlabdb.dir/tools/imlabdb.cc.o.d -o 
CMakeFiles/imlabdb.dir/tools/imlabdb.cc.o -c ../tools/imlabdb.cc

In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:59:0,
                 from ../include/imlab/util/util.hh:10,
                 from ../include/imlab/datablock/DataBlock_easy.hh:22,
                 from ../include/imlab/datablock/Table.hh:11,
                 from ../tools/imlabdb.cc:10:
/usr/lib/gcc/x86_64-linux-gnu/7/include/avx512vlbwintrin.h: In function ‘void imlab::util::count
...

/usr/lib/gcc/x86_64-linux-gnu/7/include/avx512vlbwintrin.h:3224:1: error: inlining failed in call to always_inline ‘__mmask32 _mm256_cmpgt_epu8_mask(__m256i, __m256i)’: target specific option mismatch
Last edited on
https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm256_cmpeq_epu8&expand=811
I found that this function is only on CPUID Flags: AVX512VL + AVX512BW. Hmm only the server CPU.
Do we have some other possibility to compare two 256 bit vectors from unsigned 8 bit int?
Last edited on
Topic archived. No new replies allowed.