diff --git a/docs/LangRef.html b/docs/LangRef.html index a71cbfc0927..e3971ffed0d 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -4681,7 +4681,7 @@ IfUnequal:
- <result> = load [volatile] <ty>* <pointer>[, align <alignment>][, !nontemporal !<index>] + <result> = load [volatile] <ty>* <pointer>[, align <alignment>][, !nontemporal !<index>][, !invariant.load !<index>] <result> = load atomic [volatile] <ty>* <pointer> [singlethread] <ordering>, align <alignment> !<index> = !{ i32 1 }@@ -4726,6 +4726,14 @@ IfUnequal: The code generator may select special instructions to save cache bandwidth, such as the MOVNT instruction on x86. +
The optional !invariant.load metadata must reference a single + metatadata name <index> corresponding to a metadata node with no + entries. The existence of the !invariant.load metatadata on the + instruction tells the optimizer and code generator that this load address + points to memory which does not change value during program execution. + The optimizer may then move this load around, for example, by hoisting it + out of loops using loop invariant code motion.
+The location of memory pointed to is loaded. If the value being loaded is of scalar type then the number of bytes read does not exceed the minimum number