31 lines
890 B
Diff
31 lines
890 B
Diff
From a2d6fc7ac040c6ef94a36515f9ea24428f8f1ecc Mon Sep 17 00:00:00 2001
|
|
From: Alexander Alekhin <alexander.alekhin@intel.com>
|
|
Date: Tue, 24 Apr 2018 12:40:25 +0300
|
|
Subject: [PATCH] cmake: fix popcnt detection
|
|
|
|
via GCC/Clang __POPCNT__ define
|
|
---
|
|
cmake/checks/cpu_popcnt.cpp | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/cmake/checks/cpu_popcnt.cpp b/cmake/checks/cpu_popcnt.cpp
|
|
index 16e5575108b..44c7deda053 100644
|
|
--- a/cmake/checks/cpu_popcnt.cpp
|
|
+++ b/cmake/checks/cpu_popcnt.cpp
|
|
@@ -4,12 +4,14 @@
|
|
# define CV_POPCNT_U64 _mm_popcnt_u64
|
|
# endif
|
|
# define CV_POPCNT_U32 _mm_popcnt_u32
|
|
-#else
|
|
+#elif defined(__POPCNT__)
|
|
# include <popcntintrin.h>
|
|
# if defined(__x86_64__)
|
|
# define CV_POPCNT_U64 __builtin_popcountll
|
|
# endif
|
|
# define CV_POPCNT_U32 __builtin_popcount
|
|
+#else
|
|
+# error "__POPCNT__ is not defined by compiler"
|
|
#endif
|
|
|
|
int main()
|