# include <nmmintrin.h> // Intel header for _mm_popcnt_u64() intrinsic
#endif
+#if defined(USE_PEXT)
+# include <immintrin.h> // Header for _pext_u64() intrinsic
+#else
+# define _pext_u64(b, m) (0)
+#endif
+
# if !defined(NO_PREFETCH) && (defined(__INTEL_COMPILER) || defined(_MSC_VER))
# include <xmmintrin.h> // Intel and Microsoft header for _mm_prefetch()
# endif
const bool HasPopCnt = false;
#endif
+#ifdef USE_PEXT
+const bool HasPext = true;
+#else
+const bool HasPext = false;
+#endif
+
#ifdef IS_64BIT
const bool Is64Bit = true;
#else
KnightValueMg = 817, KnightValueEg = 846,
BishopValueMg = 836, BishopValueEg = 857,
RookValueMg = 1270, RookValueEg = 1278,
- QueenValueMg = 2521, QueenValueEg = 2558
+ QueenValueMg = 2521, QueenValueEg = 2558,
+
+ MidgameLimit = 15581, EndgameLimit = 3998
};
enum PieceType {