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

Chris Lattner lattner at cs.uiuc.edu
Sat Mar 25 15:05:42 PST 2006



Changes in directory llvm/lib/Target/PowerPC:

PPCInstrAltivec.td updated: 1.3 -> 1.4
---
Log message:

add patterns for VANDC/VNOR, implementing 
CodeGen/PowerPC/eqv-andc-orc-nor.ll:VNOR/VANDC


---
Diffs of the changes:  (+8 -3)

 PPCInstrAltivec.td |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)


Index: llvm/lib/Target/PowerPC/PPCInstrAltivec.td
diff -u llvm/lib/Target/PowerPC/PPCInstrAltivec.td:1.3 llvm/lib/Target/PowerPC/PPCInstrAltivec.td:1.4
--- llvm/lib/Target/PowerPC/PPCInstrAltivec.td:1.3	Sat Mar 25 16:16:05 2006
+++ llvm/lib/Target/PowerPC/PPCInstrAltivec.td	Sat Mar 25 17:05:29 2006
@@ -163,7 +163,7 @@
                     [(set VRRC:$vD, (and (v4i32 VRRC:$vA), VRRC:$vB))]>;
 def VANDC : VXForm_1<1092, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB),
                      "vandc $vD, $vA, $vB", VecFP,
-                     []>;
+                     [(set VRRC:$vD, (vnot (and (v4i32 VRRC:$vA), VRRC:$vB)))]>;
 
 def VCFSX  : VXForm_1<842, (ops VRRC:$vD, u5imm:$UIMM, VRRC:$vB),
                       "vcfsx $vD, $vB, $UIMM", VecFP,
@@ -214,7 +214,7 @@
                       [(set VRRC:$vD, (fsub VRRC:$vA, VRRC:$vB))]>;
 def VNOR : VXForm_1<1284, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB),
                     "vnor $vD, $vA, $vB", VecFP,
-                    []>;
+                    [(set VRRC:$vD, (vnot (or (v4i32 VRRC:$vA), VRRC:$vB)))]>;
 def VOR : VXForm_1<1156, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB),
                       "vor $vD, $vA, $vB", VecFP,
                       [(set VRRC:$vD, (or (v4i32 VRRC:$vA), VRRC:$vB))]>;
@@ -313,7 +313,12 @@
 def : Pat<(v8i16 (or  VRRC:$A, VRRC:$B)), (v8i16 (VOR  VRRC:$A, VRRC:$B))>;
 def : Pat<(v16i8 (xor VRRC:$A, VRRC:$B)), (v16i8 (VXOR VRRC:$A, VRRC:$B))>;
 def : Pat<(v8i16 (xor VRRC:$A, VRRC:$B)), (v8i16 (VXOR VRRC:$A, VRRC:$B))>;
-
+def : Pat<(v16i8 (vnot (or VRRC:$A, VRRC:$B))),(v16i8 (VNOR VRRC:$A, VRRC:$B))>;
+def : Pat<(v8i16 (vnot (or VRRC:$A, VRRC:$B))),(v8i16 (VNOR VRRC:$A, VRRC:$B))>;
+def : Pat<(v16i8 (vnot (and VRRC:$A, VRRC:$B))),
+          (v16i8 (VANDC VRRC:$A, VRRC:$B))>;
+def : Pat<(v8i16 (vnot (and VRRC:$A, VRRC:$B))),
+          (v8i16 (VANDC VRRC:$A, VRRC:$B))>;
 
 def : Pat<(fmul VRRC:$vA, VRRC:$vB),
           (VMADDFP VRRC:$vA, VRRC:$vB, (V_SET0))>; 






More information about the llvm-commits mailing list