[llvm-commits] CVS: llvm/include/llvm/Intrinsics.td

Reid Spencer reid at x10sys.com
Sun Apr 1 00:31:42 PDT 2007



Changes in directory llvm/include/llvm:

Intrinsics.td updated: 1.51 -> 1.52
---
Log message:

For PR1297: http://llvm.org/PR1297 :
Implement bswap, ctpop, ctlz, and cttz utilizing the new overloaded 
intrinsic feature of tblgen. By defining llvm_int_ty to have an ValueType
of iAny, any intrinsic using that type becomes an overloaded intrinsic. 
This signals that a) any integer type could be used for that argument and
b) the intrinsic needs a suffix to match each such argument for the 
actual intrinsic.


---
Diffs of the changes:  (+6 -19)

 Intrinsics.td |   25 ++++++-------------------
 1 files changed, 6 insertions(+), 19 deletions(-)


Index: llvm/include/llvm/Intrinsics.td
diff -u llvm/include/llvm/Intrinsics.td:1.51 llvm/include/llvm/Intrinsics.td:1.52
--- llvm/include/llvm/Intrinsics.td:1.51	Mon Mar 26 02:53:08 2007
+++ llvm/include/llvm/Intrinsics.td	Sun Apr  1 02:30:57 2007
@@ -78,7 +78,8 @@
 } 
 
 def llvm_void_ty       : LLVMType<isVoid, "Type::VoidTyID">;
-def llvm_bool_ty       : LLVMIntegerType<i1, 1>;
+def llvm_int_ty        : LLVMIntegerType<iAny, 0>;
+def llvm_i1_ty         : LLVMIntegerType<i1 , 1>;
 def llvm_i8_ty         : LLVMIntegerType<i8 , 8>;
 def llvm_i16_ty        : LLVMIntegerType<i16, 16>;
 def llvm_i32_ty        : LLVMIntegerType<i32, 32>;
@@ -202,24 +203,10 @@
 
 // None of these intrinsics accesses memory at all.
 let Properties = [IntrNoMem] in {
-  def int_bswap_i16 : Intrinsic<[llvm_i16_ty, llvm_i16_ty]>;
-  def int_bswap_i32 : Intrinsic<[llvm_i32_ty,   llvm_i32_ty]>;
-  def int_bswap_i64 : Intrinsic<[llvm_i64_ty,  llvm_i64_ty]>;
-
-  def int_ctpop_i8  : Intrinsic<[llvm_i8_ty,  llvm_i8_ty]>;
-  def int_ctpop_i16 : Intrinsic<[llvm_i16_ty, llvm_i16_ty]>;
-  def int_ctpop_i32 : Intrinsic<[llvm_i32_ty,   llvm_i32_ty]>;
-  def int_ctpop_i64 : Intrinsic<[llvm_i64_ty,  llvm_i64_ty]>;
-  
-  def int_ctlz_i8  : Intrinsic<[llvm_i8_ty,  llvm_i8_ty]>;
-  def int_ctlz_i16 : Intrinsic<[llvm_i16_ty, llvm_i16_ty]>;
-  def int_ctlz_i32 : Intrinsic<[llvm_i32_ty,   llvm_i32_ty]>;
-  def int_ctlz_i64 : Intrinsic<[llvm_i64_ty,  llvm_i64_ty]>;
-
-  def int_cttz_i8  : Intrinsic<[llvm_i8_ty,  llvm_i8_ty]>;
-  def int_cttz_i16 : Intrinsic<[llvm_i16_ty, llvm_i16_ty]>;
-  def int_cttz_i32 : Intrinsic<[llvm_i32_ty,   llvm_i32_ty]>;
-  def int_cttz_i64 : Intrinsic<[llvm_i64_ty,  llvm_i64_ty]>;
+  def int_bswap: Intrinsic<[llvm_int_ty, llvm_int_ty]>;
+  def int_ctpop: Intrinsic<[llvm_i32_ty, llvm_int_ty]>;
+  def int_ctlz : Intrinsic<[llvm_i32_ty, llvm_int_ty]>;
+  def int_cttz : Intrinsic<[llvm_i32_ty, llvm_int_ty]>;
 } 
 
 //===------------------------ Debugger Intrinsics -------------------------===//






More information about the llvm-commits mailing list