cmake: fix POPCNT & SSE4.2 detection code

This commit is contained in:
Alexander Alekhin 2017-04-26 18:54:08 +03:00
parent c5c3ec46ad
commit 4c2858fd61
2 changed files with 23 additions and 7 deletions

View File

@ -1,8 +1,22 @@
#include <nmmintrin.h> #ifdef _MSC_VER
#ifndef _MSC_VER # include <nmmintrin.h>
#include <popcntintrin.h> # if defined(_M_X64)
# define CV_POPCNT_U64 _mm_popcnt_u64
# endif
# define CV_POPCNT_U32 _mm_popcnt_u32
#else
# include <popcntintrin.h>
# if defined(__x86_64__)
# define CV_POPCNT_U64 __builtin_popcountll
# endif
# define CV_POPCNT_U32 __builtin_popcount
#endif #endif
int main() {
int i = _mm_popcnt_u64(1); int main()
{
#ifdef CV_POPCNT_U64
int i = CV_POPCNT_U64(1);
#endif
int j = CV_POPCNT_U32(1);
return 0; return 0;
} }

View File

@ -1,5 +1,7 @@
#include <nmmintrin.h> #include <nmmintrin.h>
int main() {
int i = _mm_popcnt_u64(1); int main()
{
unsigned int res = _mm_crc32_u8(1, 2);
return 0; return 0;
} }