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

Chris Lattner lattner at cs.uiuc.edu
Sat Apr 15 16:45:36 PDT 2006



Changes in directory llvm/lib/Target/PowerPC:

PPCInstrAltivec.td updated: 1.49 -> 1.50
---
Log message:

Add patterns for matching vnots with bit converted inputs.  Most of these will
go away when I start using evan's binop type canonicalizer


---
Diffs of the changes:  (+17 -0)

 PPCInstrAltivec.td |   17 +++++++++++++++++
 1 files changed, 17 insertions(+)


Index: llvm/lib/Target/PowerPC/PPCInstrAltivec.td
diff -u llvm/lib/Target/PowerPC/PPCInstrAltivec.td:1.49 llvm/lib/Target/PowerPC/PPCInstrAltivec.td:1.50
--- llvm/lib/Target/PowerPC/PPCInstrAltivec.td:1.49	Wed Apr 12 12:37:20 2006
+++ llvm/lib/Target/PowerPC/PPCInstrAltivec.td	Sat Apr 15 18:45:24 2006
@@ -607,10 +607,16 @@
 def : Pat<(v8i16 (vnot VRRC:$vA)), (v8i16 (VNOR VRRC:$vA, VRRC:$vA))>;
 def : Pat<(v4i32 (vnot VRRC:$vA)), (v4i32 (VNOR VRRC:$vA, VRRC:$vA))>;
 
+def : Pat<(v16i8 (vnot_conv VRRC:$vA)), (v16i8 (VNOR VRRC:$vA, VRRC:$vA))>;
+def : Pat<(v8i16 (vnot_conv VRRC:$vA)), (v8i16 (VNOR VRRC:$vA, VRRC:$vA))>;
+def : Pat<(v4i32 (vnot_conv VRRC:$vA)), (v4i32 (VNOR VRRC:$vA, VRRC:$vA))>;
+
+
 def : Pat<(v16i8 (and VRRC:$A, VRRC:$B)), (v16i8 (VAND VRRC:$A, VRRC:$B))>;
 def : Pat<(v8i16 (and VRRC:$A, VRRC:$B)), (v8i16 (VAND VRRC:$A, VRRC:$B))>;
 def : Pat<(v16i8 (or  VRRC:$A, VRRC:$B)), (v16i8 (VOR  VRRC:$A, VRRC:$B))>;
 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))>;
@@ -620,6 +626,17 @@
 def : Pat<(v8i16 (and VRRC:$A, (vnot VRRC:$B))),
           (v8i16 (VANDC VRRC:$A, VRRC:$B))>;
 
+
+def : Pat<(v16i8 (vnot_conv (or VRRC:$A, VRRC:$B))),(v16i8 (VNOR VRRC:$A, VRRC:$B))>;
+def : Pat<(v8i16 (vnot_conv (or VRRC:$A, VRRC:$B))),(v8i16 (VNOR VRRC:$A, VRRC:$B))>;
+def : Pat<(v4i32 (vnot_conv (or VRRC:$A, VRRC:$B))),(v4i32 (VNOR VRRC:$A, VRRC:$B))>;
+def : Pat<(v16i8 (and VRRC:$A, (vnot_conv VRRC:$B))),
+          (v16i8 (VANDC VRRC:$A, VRRC:$B))>;
+def : Pat<(v8i16 (and VRRC:$A, (vnot_conv VRRC:$B))),
+          (v8i16 (VANDC VRRC:$A, VRRC:$B))>;
+def : Pat<(v4i32 (and VRRC:$A, (vnot_conv VRRC:$B))),
+          (v4i32 (VANDC VRRC:$A, VRRC:$B))>;
+
 def : Pat<(fmul VRRC:$vA, VRRC:$vB),
           (VMADDFP VRRC:$vA, VRRC:$vB, (v4i32 (V_SET0)))>; 
 






More information about the llvm-commits mailing list