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

Chris Lattner lattner at cs.uiuc.edu
Sat Mar 25 15:00:21 PST 2006



Changes in directory llvm/lib/Target:

TargetSelectionDAG.td updated: 1.58 -> 1.59
---
Log message:

add a vnot helper node for matching 'not' on vectors


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

 TargetSelectionDAG.td |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)


Index: llvm/lib/Target/TargetSelectionDAG.td
diff -u llvm/lib/Target/TargetSelectionDAG.td:1.58 llvm/lib/Target/TargetSelectionDAG.td:1.59
--- llvm/lib/Target/TargetSelectionDAG.td:1.58	Fri Mar 24 20:29:35 2006
+++ llvm/lib/Target/TargetSelectionDAG.td	Sat Mar 25 17:00:08 2006
@@ -379,13 +379,17 @@
 
 // Leaf fragments.
 
-def immAllOnes : PatLeaf<(imm), [{ return N->isAllOnesValue(); }]>;
 def vtInt      : PatLeaf<(vt),  [{ return MVT::isInteger(N->getVT()); }]>;
 def vtFP       : PatLeaf<(vt),  [{ return MVT::isFloatingPoint(N->getVT()); }]>;
 
-// Other helper fragments.
+def immAllOnes : PatLeaf<(imm), [{ return N->isAllOnesValue(); }]>;
+def immAllOnesV: PatLeaf<(build_vector), [{
+  return ISD::isBuildVectorAllOnesInteger(N);
+}]>;
 
+// Other helper fragments.
 def not  : PatFrag<(ops node:$in), (xor node:$in, immAllOnes)>;
+def vnot : PatFrag<(ops node:$in), (xor node:$in, immAllOnesV)>;
 def ineg : PatFrag<(ops node:$in), (sub 0, node:$in)>;
 
 // extending load & truncstore fragments.






More information about the llvm-commits mailing list