[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCInstrInfo.td

Nate Begeman natebegeman at mac.com
Thu Dec 29 16:13:08 PST 2005



Changes in directory llvm/lib/Target/PowerPC:

PPCInstrInfo.td updated: 1.166 -> 1.167
---
Log message:

Add support for generating v4i32 altivec code


---
Diffs of the changes:  (+10 -2)

 PPCInstrInfo.td |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)


Index: llvm/lib/Target/PowerPC/PPCInstrInfo.td
diff -u llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.166 llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.167
--- llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.166	Mon Dec 26 03:11:45 2005
+++ llvm/lib/Target/PowerPC/PPCInstrInfo.td	Thu Dec 29 18:12:56 2005
@@ -447,7 +447,7 @@
                    []>;
 def LVX  : XForm_1<31, 103, (ops VRRC:$vD,  memrr:$src),
                    "lvx $vD, $src", LdStGeneral,
-                   [(set VRRC:$vD, (load xoaddr:$src))]>;
+                   [(set VRRC:$vD, (v4f32 (load xoaddr:$src)))]>;
 }
 def LVSL : XForm_1<31,   6, (ops VRRC:$vD,  GPRC:$base, GPRC:$rA),
                    "lvsl $vD, $base, $rA", LdStGeneral,
@@ -542,7 +542,7 @@
                    []>;
 def STVX  : XForm_8<31, 231, (ops VRRC:$rS, memrr:$dst),
                    "stvx $rS, $dst", LdStGeneral,
-                   [(store VRRC:$rS, xoaddr:$dst)]>;
+                   [(store (v4f32 VRRC:$rS), xoaddr:$dst)]>;
 }
 def SRAWI : XForm_10<31, 824, (ops GPRC:$rA, GPRC:$rS, u5imm:$SH), 
                      "srawi $rA, $rS, $SH", IntShift,
@@ -892,6 +892,9 @@
 def VADDFP : VXForm_1<10, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB),
                       "vaddfp $vD, $vA, $vB", VecFP,
                       [(set VRRC:$vD, (fadd VRRC:$vA, VRRC:$vB))]>;
+def VADDUWM : VXForm_1<128, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB),
+                      "vadduwm $vD, $vA, $vB", VecGeneral,
+                      [(set VRRC:$vD, (add VRRC:$vA, VRRC:$vB))]>;
 def VCFSX  : VXForm_1<842, (ops VRRC:$vD, u5imm:$UIMM, VRRC:$vB),
                       "vcfsx $vD, $vB, $UIMM", VecFP,
                       []>;
@@ -1060,6 +1063,11 @@
 def : Pat<(f64 (extload xaddr:$src, f32)),
           (FMRSD (LFSX xaddr:$src))>;
 
+def : Pat<(v4i32 (load xoaddr:$src)),
+          (v4i32 (LVX xoaddr:$src))>;
+def : Pat<(store (v4i32 VRRC:$rS), xoaddr:$dst),
+          (STVX (v4i32 VRRC:$rS), xoaddr:$dst)>;
+
 def : Pat<(retflag), (BLR)>;
 
 // Same as above, but using a temporary. FIXME: implement temporaries :)






More information about the llvm-commits mailing list