From: Marco Costalba Date: Mon, 8 Oct 2012 09:19:50 +0000 (+0200) Subject: Rearrange prefetch code X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=dae843d4d6cba8593a0426c9a2f7418a3c76d7f8;hp=78fe0cfb8d118bc0f3585d95cb64030f36ed56c5 Rearrange prefetch code No functional change. --- diff --git a/src/misc.cpp b/src/misc.cpp index 1e1b220c..608d7725 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -227,21 +227,17 @@ void prefetch(char*) {} #else -# if defined(__INTEL_COMPILER) || defined(__ICL) || defined(_MSC_VER) -# include -# endif - void prefetch(char* addr) { -# if defined(__INTEL_COMPILER) || defined(__ICL) +# if defined(__INTEL_COMPILER) // This hack prevents prefetches to be optimized away by // Intel compiler. Both MSVC and gcc seems not affected. __asm__ (""); # endif -# if defined(__INTEL_COMPILER) || defined(__ICL) || defined(_MSC_VER) - _mm_prefetch(addr, _MM_HINT_T2); - _mm_prefetch(addr+64, _MM_HINT_T2); // 64 bytes ahead +# if defined(__INTEL_COMPILER) || defined(_MSC_VER) + _mm_prefetch(addr, _MM_HINT_T0); + _mm_prefetch(addr+64, _MM_HINT_T0); // 64 bytes ahead # else __builtin_prefetch(addr); __builtin_prefetch(addr+64); diff --git a/src/types.h b/src/types.h index 59d051ec..0774557e 100644 --- a/src/types.h +++ b/src/types.h @@ -51,6 +51,10 @@ # include // Intel header for _mm_popcnt_u64() intrinsic #endif +# if !defined(NO_PREFETCH) && (defined(__INTEL_COMPILER) || defined(_MSC_VER)) +# include // Intel and Microsoft header for _mm_prefetch() +# endif + #if defined(_MSC_VER) || defined(__INTEL_COMPILER) # define CACHE_LINE_ALIGNMENT __declspec(align(64)) #else