From 8aa88cd11caa8dbfd5966e5e2f391b892cfd1c35 Mon Sep 17 00:00:00 2001 From: Martijn Vels Date: Tue, 14 Feb 2023 14:06:10 -0800 Subject: 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 --- absl/base/prefetch.h | 5 ----- 1 file changed, 5 deletions(-) (limited to 'absl/base') 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 #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(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(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 -- cgit v1.2.3