Created
September 29, 2020 09:16
-
-
Save degski/1ce786eabeac08000002508a8c143440 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// prfchwintrin.h | |
/*===---- prfchwintrin.h - PREFETCHW intrinsic -----------------------------=== | |
* | |
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
* See https://llvm.org/LICENSE.txt for license information. | |
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
* | |
*===-----------------------------------------------------------------------=== | |
*/ | |
#if !defined(__X86INTRIN_H) && !defined(_MM3DNOW_H_INCLUDED) | |
#error "Never use <prfchwintrin.h> directly; include <x86intrin.h> or <mm3dnow.h> instead." | |
#endif | |
#ifndef __PRFCHWINTRIN_H | |
#define __PRFCHWINTRIN_H | |
/// Loads a memory sequence containing the specified memory address into | |
/// all data cache levels. The cache-coherency state is set to exclusive. | |
/// Data can be read from and written to the cache line without additional | |
/// delay. | |
/// | |
/// \headerfile <x86intrin.h> | |
/// | |
/// This intrinsic corresponds to the \c PREFETCHT0 instruction. | |
/// | |
/// \param __P | |
/// A pointer specifying the memory address to be prefetched. | |
static __inline__ void __attribute__((__always_inline__, __nodebug__)) | |
_m_prefetch(void *__P) | |
{ | |
__builtin_prefetch (__P, 0, 3 /* _MM_HINT_T0 */); | |
} | |
/// Loads a memory sequence containing the specified memory address into | |
/// the L1 data cache and sets the cache-coherency to modified. This | |
/// provides a hint to the processor that the cache line will be modified. | |
/// It is intended for use when the cache line will be written to shortly | |
/// after the prefetch is performed. | |
/// | |
/// Note that the effect of this intrinsic is dependent on the processor | |
/// implementation. | |
/// | |
/// \headerfile <x86intrin.h> | |
/// | |
/// This intrinsic corresponds to the \c PREFETCHW instruction. | |
/// | |
/// \param __P | |
/// A pointer specifying the memory address to be prefetched. | |
static __inline__ void __attribute__((__always_inline__, __nodebug__)) | |
_m_prefetchw(volatile const void *__P) | |
{ | |
__builtin_prefetch (__P, 1, 3 /* _MM_HINT_T0 */); | |
} | |
#endif /* __PRFCHWINTRIN_H */ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment