X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fbitcount.h;h=199fcf192bd980b0b4b0eed327dfb843566c2011;hb=c2511243b40964e5ed5f35447baf5663a72da72a;hp=0992c00625e084ecc1fa78110ccef0c04a500166;hpb=d4876dc96395f5592bfbc25b2eca2360db0655e6;p=stockfish
diff --git a/src/bitcount.h b/src/bitcount.h
index 0992c006..199fcf19 100644
--- a/src/bitcount.h
+++ b/src/bitcount.h
@@ -18,7 +18,6 @@
along with this program. If not, see .
*/
-
#if !defined(BITCOUNT_H_INCLUDED)
#define BITCOUNT_H_INCLUDED
@@ -85,8 +84,10 @@ template<>
inline int count_1s(Bitboard b) {
#if !defined(USE_POPCNT)
return int(b != 0); // Avoid 'b not used' warning
+#elif defined(_MSC_VER) && defined(__INTEL_COMPILER)
+ return _mm_popcnt_u64(b);
#elif defined(_MSC_VER)
- return __popcnt64(b);
+ return (int)__popcnt64(b);
#elif defined(__GNUC__)
unsigned long ret;
__asm__("popcnt %1, %0" : "=r" (ret) : "r" (b));
@@ -94,32 +95,4 @@ inline int count_1s(Bitboard b) {
#endif
}
-
-/// cpu_has_popcnt() detects support for popcnt instruction at runtime
-inline bool cpu_has_popcnt() {
-
- int CPUInfo[4] = {-1};
- __cpuid(CPUInfo, 0x00000001);
- return (CPUInfo[2] >> 23) & 1;
-}
-
-
-/// CpuHasPOPCNT is a global constant initialized at startup that
-/// is set to true if CPU on which application runs supports popcnt
-/// hardware instruction. Unless USE_POPCNT is not defined.
-#if defined(USE_POPCNT)
-const bool CpuHasPOPCNT = cpu_has_popcnt();
-#else
-const bool CpuHasPOPCNT = false;
-#endif
-
-
-/// CpuIs64Bit is a global constant initialized at compile time that
-/// is set to true if CPU on which application runs is a 64 bits.
-#if defined(IS_64BIT)
-const bool CpuIs64Bit = true;
-#else
-const bool CpuIs64Bit = false;
-#endif
-
#endif // !defined(BITCOUNT_H_INCLUDED)