]> granicus.if.org Git - clang/commitdiff
Docs: Document __builtin_nontemporal_load and __builtin_nontemporal_store.
authorMichael Zolotukhin <mzolotukhin@apple.com>
Fri, 11 Sep 2015 02:01:15 +0000 (02:01 +0000)
committerMichael Zolotukhin <mzolotukhin@apple.com>
Fri, 11 Sep 2015 02:01:15 +0000 (02:01 +0000)
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

docs/LanguageExtensions.rst

index c55545c8201647160b3aefd534e4316a9149f5b7..f933dcbbb1a6075ec971c8cf9d71793ce2ed2929 100644 (file)
@@ -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
 =============================