[llvm-commits] CVS: llvm/docs/LangRef.html

Reid Spencer reid at x10sys.com
Sun Apr 1 01:27:18 PDT 2007



Changes in directory llvm/docs:

LangRef.html updated: 1.220 -> 1.221
---
Log message:

For PR1297: http://llvm.org/PR1297 :
Preview documentation for the llvm.bit.concat intrinsic (yet to be 
implemented).


---
Diffs of the changes:  (+47 -1)

 LangRef.html |   48 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 47 insertions(+), 1 deletion(-)


Index: llvm/docs/LangRef.html
diff -u llvm/docs/LangRef.html:1.220 llvm/docs/LangRef.html:1.221
--- llvm/docs/LangRef.html:1.220	Sun Apr  1 03:04:23 2007
+++ llvm/docs/LangRef.html	Sun Apr  1 03:27:01 2007
@@ -4587,6 +4587,52 @@
 </p>
 </div>
 
+<!-- _______________________________________________________________________ -->
+<div class="doc_subsubsection">
+  <a name="int_cttz">'<tt>llvm.bit.concat.*</tt>' Intrinsic</a>
+</div>
+
+<div class="doc_text">
+
+<h5>Syntax:</h5>
+<p>This is an overloaded intrinsic. You can use <tt>llvm.bit.concat</tt> on any 
+integer bit width.
+<pre>
+  declare i32 @llvm.bit.concat.i32.i17.i15 (i17 %hi, i15 %lo)
+  declare i29 @llvm.bit.concat.i29(i16 %lo, i13 %lo)
+</pre>
+
+<h5>Overview:</h5>
+<p>
+The '<tt>llvm.bit.concat</tt>' family of intrinsic functions concatenates two
+integer values to produce a longer one.
+</p>
+
+<h5>Arguments:</h5>
+
+<p>
+The two arguments may be any bit width. The result must be an integer whose bit
+width is the sum of the arguments' bit widths. The first argument represents the
+bits that will occupy the high order bit locations in the concatenated result.
+THe second argument will occupy the lower order bit locations in the result.
+</p>
+
+<h5>Semantics:</h5>
+
+<p>
+The '<tt>llvm.bit.concat</tt>' intrinsic is the equivalent of two <tt>zext</tt>
+instructions, a <tt>shl</tt> and an <tt>or</tt>. This sequence can be
+implemented in hardware so this intrinsic assists with recognizing the sequence
+for code generation purposes.  The operation proceeds as follows:</p>
+<ol>
+  <li>Each of the arguments is <tt>zext</tt>'d to the result bit width.</li>
+  <li>The <tt>%hi</tt> argument is shift left by the width of the <tt>%lo</tt>
+  argument (shifted into to high order bits).</li>
+  <li>The shifted <tt>%hi</tt> value and <tt>%lo</tt> are <tt>or</tt>'d together
+  to form the result.</li>
+</ol>
+</div>
+
 <!-- ======================================================================= -->
 <div class="doc_subsection">
   <a name="int_debugger">Debugger Intrinsics</a>
@@ -4625,7 +4671,7 @@
 
   <a href="mailto:sabre at nondot.org">Chris Lattner</a><br>
   <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2007/04/01 08:04:23 $
+  Last modified: $Date: 2007/04/01 08:27:01 $
 </address>
 </body>
 </html>






More information about the llvm-commits mailing list