diff options
author | Martijn Vels <mvels@google.com> | 2023-02-14 14:06:10 -0800 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-02-14 14:06:58 -0800 |
commit | 8aa88cd11caa8dbfd5966e5e2f391b892cfd1c35 (patch) | |
tree | 5ff80284e01ef390729dd5b51107019ebfc4d360 /absl/base | |
parent | 15957950d997cd9e09c61add5200361d5d1e7e11 (diff) |
Remove _m_prefetchw() in favor of supporting only _mm_prefetch() or __builtin_prefetch()
Supporting _m_prefetchw() (officially part of 3DNOW) across various compilers and platforms turns out to be difficult. This change removes the explicit _m_prefetchw call aimed at MSVC compilers given that it causes issues in clang / chromium compilations.
PiperOrigin-RevId: 509632497
Change-Id: Ib1b6b2cf667cbc1af5ed6651cd9aa0294a9265b6
Diffstat (limited to 'absl/base')
-rw-r--r-- | absl/base/prefetch.h | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/absl/base/prefetch.h b/absl/base/prefetch.h index a0b1efe6..de7a180d 100644 --- a/absl/base/prefetch.h +++ b/absl/base/prefetch.h @@ -34,7 +34,6 @@ (defined(_M_X64) || defined(_M_IX86)) #include <intrin.h> #pragma intrinsic(_mm_prefetch) -#pragma intrinsic(_m_prefetchw) #endif namespace absl { @@ -176,10 +175,6 @@ inline void PrefetchToLocalCacheNta(const void* addr) { inline void PrefetchToLocalCacheForWrite(const void* addr) { #if defined(_MM_HINT_ET0) _mm_prefetch(reinterpret_cast<const char*>(addr), _MM_HINT_ET0); -#elif defined(_MSC_VER) && _MSC_VER >= 1900 && \ - (defined(_M_X64) || defined(_M_IX86)) - // MSVC 2015 and up on x86/x64 supports prefetchw (feature listed as 3DNOW) - _m_prefetchw(const_cast<void*>(addr)); #elif !defined(_MSC_VER) && defined(__x86_64__) // _MM_HINT_ET0 is not universally supported. As we commented further // up, PREFETCHW is recognized as a no-op on older Intel processors |