aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2008-12-22 03:50:21 +0000
committerAnders Carlsson <andersca@mac.com>2008-12-22 03:50:21 +0000
commitdedad4ed6752ac8a4d15cdab6ecdfb54ba43ec95 (patch)
tree55064a931109b650e6d38f65ce2a038673e85a08 /lib
parent09b9305acfd140283c3a204878750bd6edde7a00 (diff)
Add cacheability intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61323 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Headers/xmmintrin.devel.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/Headers/xmmintrin.devel.h b/lib/Headers/xmmintrin.devel.h
index f5ae1b677b..314511c428 100644
--- a/lib/Headers/xmmintrin.devel.h
+++ b/lib/Headers/xmmintrin.devel.h
@@ -517,6 +517,31 @@ static inline void __attribute__((__always_inline__)) _mm_storer_ps(float *p, __
_mm_store_ps(p, a);
}
+#define _MM_HINT_T0 1
+#define _MM_HINT_T1 2
+#define _MM_HINT_T2 3
+#define _MM_HINT_NTA 0
+
+// FIXME: We have to #define this because "sel" must be a constant integer, and
+// Sema doesn't do any form of constant propagation yet.
+
+#define _mm_prefetch(a, sel) (__builtin_prefetch((void *)a, 0, sel))
+
+static inline void __attribute__((__always_inline__)) _mm_stream_pi(__m64 *p, __m64 a)
+{
+ __builtin_ia32_movntq(p, a);
+}
+
+static inline void __attribute__((__always_inline__)) _mm_stream_ps(float *p, __m128 a)
+{
+ __builtin_ia32_movntps(p, a);
+}
+
+static inline void __attribute__((__always_inline__)) _mm_sfence(void)
+{
+ __builtin_ia32_sfence();
+}
+
#endif /* __SSE__ */
#endif /* __XMMINTRIN_H */