summaryrefslogtreecommitdiff
path: root/absl/base
diff options
context:
space:
mode:
authorGravatar Martijn Vels <mvels@google.com>2023-02-14 14:06:10 -0800
committerGravatar Copybara-Service <copybara-worker@google.com>2023-02-14 14:06:58 -0800
commit8aa88cd11caa8dbfd5966e5e2f391b892cfd1c35 (patch)
tree5ff80284e01ef390729dd5b51107019ebfc4d360 /absl/base
parent15957950d997cd9e09c61add5200361d5d1e7e11 (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.h5
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