[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