Go to the documentation of this file.
15 #ifndef ABSL_BASE_INTERNAL_PREFETCH_H_
16 #define ABSL_BASE_INTERNAL_PREFETCH_H_
18 #include "absl/base/config.h"
21 #include <xmmintrin.h>
24 #if defined(_MSC_VER) && defined(ABSL_INTERNAL_HAVE_SSE)
26 #pragma intrinsic(_mm_prefetch)
73 namespace base_internal {
82 #if ABSL_HAVE_BUILTIN(__builtin_prefetch) || defined(__GNUC__)
84 #define ABSL_INTERNAL_HAVE_PREFETCH 1
95 __builtin_prefetch(
addr, 0, 3);
99 __builtin_prefetch(
addr, 0, 2);
103 __builtin_prefetch(
addr, 0, 1);
107 __builtin_prefetch(
addr, 0, 0);
110 #elif defined(ABSL_INTERNAL_HAVE_SSE)
112 #define ABSL_INTERNAL_HAVE_PREFETCH 1
115 _mm_prefetch(
reinterpret_cast<const char*
>(
addr), _MM_HINT_T0);
118 _mm_prefetch(
reinterpret_cast<const char*
>(
addr), _MM_HINT_T1);
121 _mm_prefetch(
reinterpret_cast<const char*
>(
addr), _MM_HINT_T2);
124 _mm_prefetch(
reinterpret_cast<const char*
>(
addr), _MM_HINT_NTA);
138 #endif // ABSL_BASE_INTERNAL_PREFETCH_H_
#define ABSL_NAMESPACE_END
void PrefetchT2(const void *addr)
void PrefetchNta(const void *addr)
#define ABSL_NAMESPACE_BEGIN
void PrefetchT0(const void *addr)
void PrefetchT1(const void *addr)
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:00:54