From 1ceb384b7ba500cb9510c6766b451de5f19bd033 Mon Sep 17 00:00:00 2001 From: Michael Zolotukhin Date: Fri, 11 Sep 2015 02:01:15 +0000 Subject: [PATCH] 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 --- docs/LanguageExtensions.rst | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) 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 ============================= -- 2.50.1