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

Bill Wendling isanbard at gmail.com
Thu Mar 8 14:09:33 PST 2007



Changes in directory llvm/include/llvm:

Intrinsics.td updated: 1.49 -> 1.50
IntrinsicsX86.td updated: 1.32 -> 1.33
---
Log message:

Added "padd*" support for MMX. Added MMX move stuff to X86InstrInfo so that
moves, loads, etc. are recognized.


---
Diffs of the changes:  (+21 -0)

 Intrinsics.td    |    4 ++++
 IntrinsicsX86.td |   17 +++++++++++++++++
 2 files changed, 21 insertions(+)


Index: llvm/include/llvm/Intrinsics.td
diff -u llvm/include/llvm/Intrinsics.td:1.49 llvm/include/llvm/Intrinsics.td:1.50
--- llvm/include/llvm/Intrinsics.td:1.49	Thu Mar  1 14:23:39 2007
+++ llvm/include/llvm/Intrinsics.td	Thu Mar  8 16:09:11 2007
@@ -98,6 +98,10 @@
 def llvm_v4f32_ty      : LLVMVectorType<v4f32, 4, llvm_float_ty>; //  4 x float
 def llvm_v2f64_ty      : LLVMVectorType<v2f64, 2, llvm_double_ty>;//  2 x double
 
+// MMX Vector Types
+def llvm_v8i8_ty       : LLVMVectorType<v8i8,  8, llvm_i8_ty>;    //  8 x i8
+def llvm_v4i16_ty      : LLVMVectorType<v4i16, 4, llvm_i16_ty>;   //  4 x i16
+
 def llvm_vararg_ty     : LLVMType<isVoid, "...">; // vararg
 
 //===----------------------------------------------------------------------===//


Index: llvm/include/llvm/IntrinsicsX86.td
diff -u llvm/include/llvm/IntrinsicsX86.td:1.32 llvm/include/llvm/IntrinsicsX86.td:1.33
--- llvm/include/llvm/IntrinsicsX86.td:1.32	Mon Mar  5 17:09:45 2007
+++ llvm/include/llvm/IntrinsicsX86.td	Thu Mar  8 16:09:11 2007
@@ -544,3 +544,20 @@
   def int_x86_mmx_emms : GCCBuiltin<"__builtin_ia32_emms">,
               Intrinsic<[llvm_void_ty], [IntrWriteMem]>;
 }
+
+// Integer arithmetic ops.
+let TargetPrefix = "x86" in {  // All intrinsics start with "llvm.x86.".
+  def int_x86_mmx_padds_b : GCCBuiltin<"__builtin_ia32_paddsb">,
+              Intrinsic<[llvm_v8i8_ty, llvm_v8i8_ty,
+                         llvm_v8i8_ty], [IntrNoMem]>;
+  def int_x86_mmx_padds_w : GCCBuiltin<"__builtin_ia32_paddsw">,
+              Intrinsic<[llvm_v4i16_ty, llvm_v4i16_ty,
+                         llvm_v4i16_ty], [IntrNoMem]>;
+
+  def int_x86_mmx_paddus_b : GCCBuiltin<"__builtin_ia32_paddusb">,
+              Intrinsic<[llvm_v8i8_ty, llvm_v8i8_ty,
+                         llvm_v8i8_ty], [IntrNoMem]>;
+  def int_x86_mmx_paddus_w : GCCBuiltin<"__builtin_ia32_paddusw">,
+              Intrinsic<[llvm_v4i16_ty, llvm_v4i16_ty,
+                         llvm_v4i16_ty], [IntrNoMem]>;
+}






More information about the llvm-commits mailing list