<li><a href="#int_memory_barrier">'<tt>llvm.memory.barrier</tt>' Intrinsic</a></li>
</ol>
</li>
- <li><a href="#int_general">General intrinsics</a></li>
+ <li><a href="#int_general">General intrinsics</a>
<ol>
- <li><a href="#int_var_annotation">'<tt>llvm.var.annotation</tt>'
- Intrinsic</a></li>
- </ol>
+ <li><a href="#int_var_annotation">
+ <tt>llvm.var.annotation</tt>' Intrinsic</a></li>
+ </ol>
</li>
</ol>
</li>
the parser.</p>
</div>
-<!-- Describe the typesetting conventions here. --> </div>
+<!-- Describe the typesetting conventions here. -->
<!-- *********************************************************************** -->
<div class="doc_section"> <a name="identifiers">Identifiers</a> </div>
<p>
These do <em>not</em> form an API such as high-level threading libraries,
software transaction memory systems, atomic primitives, and intrinsic
- functionss as found in BSD, GNU libc, atomic_ops, APR, and other system and
+ functions as found in BSD, GNU libc, atomic_ops, APR, and other system and
application libraries. The hardware interface provided by LLVM should allow
a clean implementation of all of these APIs and parallel programming models.
No one model or paradigm should be selected above others unless the hardware
<h5>Syntax:</h5>
<p>
This is an overloaded intrinsic. You can use <tt>llvm.atomic.lcs</tt> on any
- integer bit width. Not all targets support all bit widths however.
+ integer bit width. Not all targets support all bit widths however.</p>
<pre>
declare i8 @llvm.atomic.lcs.i8.i8p.i8.i8( i8* <ptr>, i8 <cmp>, i8 <val> )
declare i16 @llvm.atomic.lcs.i16.i16p.i16.i16( i16* <ptr>, i16 <cmp>, i16 <val> )
declare i32 @llvm.atomic.lcs.i32.i32p.i32.i32( i32* <ptr>, i32 <cmp>, i32 <val> )
declare i64 @llvm.atomic.lcs.i64.i64p.i64.i64( i64* <ptr>, i64 <cmp>, i64 <val> )
</pre>
-</p>
<h5>Overview:</h5>
<p>
This loads a value in shared memory and compares it to a given value. If they
<h5>Syntax:</h5>
<p>
This is an overloaded intrinsic. You can use <tt>llvm.atomic.ls</tt> on any
- integer bit width. Not all targets support all bit widths however.
+ integer bit width. Not all targets support all bit widths however.</p>
<pre>
declare i8 @llvm.atomic.ls.i8.i8p.i8( i8* <ptr>, i8 <val> )
declare i16 @llvm.atomic.ls.i16.i16p.i16( i16* <ptr>, i16 <val> )
declare i32 @llvm.atomic.ls.i32.i32p.i32( i32* <ptr>, i32 <val> )
declare i64 @llvm.atomic.ls.i64.i64p.i64( i64* <ptr>, i64 <val> )
</pre>
-</p>
<h5>Overview:</h5>
<p>
This intrinsic loads the value stored in shared memory at <tt>ptr</tt> and
<h5>Syntax:</h5>
<p>
This is an overloaded intrinsic. You can use <tt>llvm.atomic.las</tt> on any
- integer bit width. Not all targets support all bit widths however.
+ integer bit width. Not all targets support all bit widths however.</p>
<pre>
declare i8 @llvm.atomic.las.i8.i8p.i8( i8* <ptr>, i8 <delta> )
declare i16 @llvm.atomic.las.i16.i16p.i16( i16* <ptr>, i16 <delta> )
declare i32 @llvm.atomic.las.i32.i32p.i32( i32* <ptr>, i32 <delta> )
declare i64 @llvm.atomic.las.i64.i64p.i64( i64* <ptr>, i64 <delta> )
</pre>
-</p>
<h5>Overview:</h5>
<p>
This intrinsic adds <tt>delta</tt> to the value stored in shared memory at
<h5>Syntax:</h5>
<p>
This is an overloaded intrinsic. You can use <tt>llvm.atomic.lss</tt> on any
- integer bit width. Not all targets support all bit widths however.
+ integer bit width. Not all targets support all bit widths however.</p>
<pre>
declare i8 @llvm.atomic.lss.i8.i8.i8( i8* <ptr>, i8 <delta> )
declare i16 @llvm.atomic.lss.i16.i16.i16( i16* <ptr>, i16 <delta> )
declare i32 @llvm.atomic.lss.i32.i32.i32( i32* <ptr>, i32 <delta> )
declare i64 @llvm.atomic.lss.i64.i64.i64( i64* <ptr>, i64 <delta> )
</pre>
-</p>
<h5>Overview:</h5>
<p>
This intrinsic subtracts <tt>delta</tt> from the value stored in shared
</div>
<div class="doc_text">
<h5>Syntax:</h5>
-<p>
<pre>
declare void @llvm.memory.barrier( i1 <ll>, i1 <ls>, i1 <sl>, i1 <ss> )
</pre>
-</p>
<h5>Overview:</h5>
<p>
The <tt>llvm.memory.barrier</tt> intrinsic guarantees ordering between