diff options
| author | Chris Lattner <sabre@nondot.org> | 2006-03-25 23:00:08 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2006-03-25 23:00:08 +0000 |
| commit | 3de9286e094a0b93837be62a4bbd54de93427ebe (patch) | |
| tree | 1c1b3a9f22483ab11043ace6bfa01ab786db0dc3 /llvm/lib | |
| parent | f6e3b957b8346cf98679162a1c063ed10422fa70 (diff) | |
| download | bcm5719-llvm-3de9286e094a0b93837be62a4bbd54de93427ebe.tar.gz bcm5719-llvm-3de9286e094a0b93837be62a4bbd54de93427ebe.zip | |
add a vnot helper node for matching 'not' on vectors
llvm-svn: 27132
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/TargetSelectionDAG.td | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/Target/TargetSelectionDAG.td b/llvm/lib/Target/TargetSelectionDAG.td index 3856009bd29..0cf0bfea413 100644 --- a/llvm/lib/Target/TargetSelectionDAG.td +++ b/llvm/lib/Target/TargetSelectionDAG.td @@ -379,13 +379,17 @@ class PatLeaf<dag frag, code pred = [{}], SDNodeXForm xform = NOOP_SDNodeXForm> // 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. |

