1
+ /*===---------------- movrsintrin.h - MOVRS intrinsics ----------------------===
2
+ *
3
+ * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
+ * See https://llvm.org/LICENSE.txt for license information.
5
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ *
7
+ *===----------------------------------------------------------------------===*/
8
+
9
+ #ifndef __IMMINTRIN_H
10
+ #error "Never use <movrsintrin.h> directly; include <immintrin.h> instead."
11
+ #endif // __IMMINTRIN_H
12
+
13
+ #ifndef __MOVRSINTRIN_H
14
+ #define __MOVRSINTRIN_H
15
+
16
+ #define __DEFAULT_FN_ATTRS \
17
+ __attribute__((__always_inline__, __nodebug__, __target__("movrs")))
18
+
19
+ #ifdef __x86_64__
20
+ static __inline__ char __DEFAULT_FN_ATTRS _movrs_i8 (const void * __A ) {
21
+ return (char )__builtin_ia32_movrsqi ((const void * )__A );
22
+ }
23
+
24
+ static __inline__ short __DEFAULT_FN_ATTRS _movrs_i16 (const void * __A ) {
25
+ return (short )__builtin_ia32_movrshi ((const void * )__A );
26
+ }
27
+
28
+ static __inline__ int __DEFAULT_FN_ATTRS _movrs_i32 (const void * __A ) {
29
+ return (int )__builtin_ia32_movrssi ((const void * )__A );
30
+ }
31
+
32
+ static __inline__ long long __DEFAULT_FN_ATTRS _movrs_i64 (const void * __A ) {
33
+ return (long long )__builtin_ia32_movrsdi ((const void * )__A );
34
+ }
35
+ #endif // __x86_64__
36
+
37
+ // Loads a memory sequence containing the specified memory address into
38
+ /// the L3 data cache. Data will be shared (read/written) to by requesting
39
+ /// core and other cores.
40
+ ///
41
+ /// Note that the effect of this intrinsic is dependent on the processor
42
+ /// implementation.
43
+ ///
44
+ /// \headerfile <x86intrin.h>
45
+ ///
46
+ /// This intrinsic corresponds to the \c PREFETCHRS instruction.
47
+ ///
48
+ /// \param __P
49
+ /// A pointer specifying the memory address to be prefetched.
50
+ static __inline__ void __DEFAULT_FN_ATTRS
51
+ _m_prefetchrs (volatile const void * __P ) {
52
+ #pragma clang diagnostic push
53
+ #pragma clang diagnostic ignored "-Wcast-qual"
54
+ __builtin_ia32_prefetchrs ((const void * )__P );
55
+ #pragma clang diagnostic pop
56
+ }
57
+
58
+ #undef __DEFAULT_FN_ATTRS
59
+ #endif // __MOVRSINTRIN_H
0 commit comments