When using Intel compiler, CLion complains that _mm_extract_epi64 may be undeclared or unknown (still compilation is successful). On the other hand CLion doesn't complain on some other intrinsics functions such as _mm_set_epi64x.
The difference is that the former is defined as a macro.
#define _mm_extract_epi64(X, N) \
((long long)__builtin_ia32_vec_ext_v2di((__v2di)(__m128i)(X), (int)(N)))
while the latter is defined as an inline function
static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_set_epi64x(long long __q1,
long long __q0) {
return __extension__(__m128i)(__v2di){__q0, __q1};
}
CLion doesn't think that __builtin_ia32_vec_ext_v2di is a valid builtin function.
Same error occurs for MinGW gcc because of the same reason. Only MSVC doesn't complain because _mm_extract_epi64 is defined as extern.
Is there any fix?