From: Reid Spencer Date: Sun, 1 Apr 2007 08:27:01 +0000 (+0000) Subject: For PR1297: X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=497d93e61f43fe69030d711e7483adbbb53243fb;p=oota-llvm.git For PR1297: Preview documentation for the llvm.bit.concat intrinsic (yet to be implemented). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35552 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/LangRef.html b/docs/LangRef.html index 88623481967..84e46fb2bcb 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -4587,6 +4587,52 @@ of src. For example, llvm.cttz(2) = 1.

+ +
+ 'llvm.bit.concat.*' Intrinsic +
+ +
+ +
Syntax:
+

This is an overloaded intrinsic. You can use llvm.bit.concat on any +integer bit width. +

+  declare i32 @llvm.bit.concat.i32.i17.i15 (i17 %hi, i15 %lo)
+  declare i29 @llvm.bit.concat.i29(i16 %lo, i13 %lo)
+
+ +
Overview:
+

+The 'llvm.bit.concat' family of intrinsic functions concatenates two +integer values to produce a longer one. +

+ +
Arguments:
+ +

+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. +

+ +
Semantics:
+ +

+The 'llvm.bit.concat' intrinsic is the equivalent of two zext +instructions, a shl and an or. This sequence can be +implemented in hardware so this intrinsic assists with recognizing the sequence +for code generation purposes. The operation proceeds as follows:

+
    +
  1. Each of the arguments is zext'd to the result bit width.
  2. +
  3. The %hi argument is shift left by the width of the %lo + argument (shifted into to high order bits).
  4. +
  5. The shifted %hi value and %lo are or'd together + to form the result.
  6. +
+
+
Debugger Intrinsics