[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