summaryrefslogtreecommitdiffstats
path: root/docs/LanguageExtensions.rst
diff options
context:
space:
mode:
authorMichael Zolotukhin <mzolotukhin@apple.com>2015-09-11 02:01:15 +0000
committerMichael Zolotukhin <mzolotukhin@apple.com>2015-09-11 02:01:15 +0000
commit1ceb384b7ba500cb9510c6766b451de5f19bd033 (patch)
treeb55cf4f38a95af77bdc249f4bc0deda647baaf69 /docs/LanguageExtensions.rst
parent4c5c1f9ac023d9f374124a313d616960832dac9a (diff)
Docs: Document __builtin_nontemporal_load and __builtin_nontemporal_store.
Summary: In r247104 I added the builtins for generating non-temporal memory operations, but now I realized that they lack documentation. This patch adds some. Differential Revision: http://reviews.llvm.org/D12785 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@247374 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/LanguageExtensions.rst')
-rw-r--r--docs/LanguageExtensions.rst20
1 files changed, 20 insertions, 0 deletions
diff --git a/docs/LanguageExtensions.rst b/docs/LanguageExtensions.rst
index c55545c820..f933dcbbb1 100644
--- a/docs/LanguageExtensions.rst
+++ b/docs/LanguageExtensions.rst
@@ -1779,6 +1779,26 @@ care should be exercised.
For these reasons the higher level atomic primitives should be preferred where
possible.
+Non-temporal load/store builtins
+--------------------------------
+
+Clang provides overloaded builtins allowing generation of non-temporal memory
+accesses.
+
+.. code-block:: c
+
+ T __builtin_nontemporal_load(T *addr);
+ void __builtin_nontemporal_store(T value, T *addr);
+
+The types ``T`` currently supported are:
+
+* Integer types.
+* Floating-point types.
+* Vector types.
+
+Note that the compiler does not guarantee that non-temporal loads or stores
+will be used.
+
Non-standard C++11 Attributes
=============================