[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelLowering.cpp X86InstrMMX.td
Bill Wendling
isanbard at gmail.com
Thu Mar 15 14:24:58 PDT 2007
Changes in directory llvm/lib/Target/X86:
X86ISelLowering.cpp updated: 1.369 -> 1.370
X86InstrMMX.td updated: 1.19 -> 1.20
---
Log message:
Multiplication support for MMX.
---
Diffs of the changes: (+9 -1)
X86ISelLowering.cpp | 3 +++
X86InstrMMX.td | 7 ++++++-
2 files changed, 9 insertions(+), 1 deletion(-)
Index: llvm/lib/Target/X86/X86ISelLowering.cpp
diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.369 llvm/lib/Target/X86/X86ISelLowering.cpp:1.370
--- llvm/lib/Target/X86/X86ISelLowering.cpp:1.369 Wed Mar 14 17:11:11 2007
+++ llvm/lib/Target/X86/X86ISelLowering.cpp Thu Mar 15 16:24:36 2007
@@ -325,6 +325,9 @@
setOperationAction(ISD::SUB, MVT::v4i16, Legal);
setOperationAction(ISD::SUB, MVT::v2i32, Legal);
+ setOperationAction(ISD::MULHS, MVT::v4i16, Legal);
+ setOperationAction(ISD::MUL, MVT::v4i16, Legal);
+
setOperationAction(ISD::LOAD, MVT::v8i8, Promote);
AddPromotedToType (ISD::LOAD, MVT::v8i8, MVT::v2i32);
setOperationAction(ISD::LOAD, MVT::v4i16, Promote);
Index: llvm/lib/Target/X86/X86InstrMMX.td
diff -u llvm/lib/Target/X86/X86InstrMMX.td:1.19 llvm/lib/Target/X86/X86InstrMMX.td:1.20
--- llvm/lib/Target/X86/X86InstrMMX.td:1.19 Sat Mar 10 03:57:05 2007
+++ llvm/lib/Target/X86/X86InstrMMX.td Thu Mar 15 16:24:36 2007
@@ -111,6 +111,11 @@
defm MMX_PSUBUSB : MMXI_binop_rm_int<0xD8, "psubusb", int_x86_mmx_psubus_b>;
defm MMX_PSUBUSW : MMXI_binop_rm_int<0xD9, "psubusw", int_x86_mmx_psubus_w>;
+defm MMX_PMULLW : MMXI_binop_rm<0xD5, "pmullw", mul, v4i16, 1>;
+
+defm MMX_PMULHW : MMXI_binop_rm_int<0xE5, "pmulhw" , int_x86_mmx_pmulh_w , 1>;
+defm MMX_PMADDWD : MMXI_binop_rm_int<0xF5, "pmaddwd", int_x86_mmx_pmadd_wd, 1>;
+
// Move Instructions
def MOVD64rr : MMXI<0x6E, MRMSrcReg, (ops VR64:$dst, GR32:$src),
"movd {$src, $dst|$dst, $src}", []>;
@@ -139,7 +144,7 @@
"cvtpi2pd {$src, $dst|$dst, $src}", []>;
def CVTTPS2PIrr: I<0x2C, MRMSrcReg, (ops VR64:$dst, VR128:$src),
"cvttps2pi {$src, $dst|$dst, $src}", []>, TB,
- Requires<[HasSSE2]>;
+ Requires<[HasMMX]>;
def CVTTPS2PIrm: I<0x2C, MRMSrcMem, (ops VR64:$dst, f64mem:$src),
"cvttps2pi {$src, $dst|$dst, $src}", []>, TB,
Requires<[HasMMX]>;
More information about the llvm-commits
mailing list