From: Chris Lattner Date: Sat, 15 Apr 2006 23:39:14 +0000 (+0000) Subject: Add a new vnot_conv predicate for matching vnot's where the allones vector is X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=1fcee4edf5ec242843be6dd726d9854cdfe6b276;p=oota-llvm.git Add a new vnot_conv predicate for matching vnot's where the allones vector is bitconverted from some other type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27724 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/TargetSelectionDAG.td b/lib/Target/TargetSelectionDAG.td index 02608409749..40a4a97d077 100644 --- a/lib/Target/TargetSelectionDAG.td +++ b/lib/Target/TargetSelectionDAG.td @@ -394,9 +394,15 @@ def immAllZerosV: PatLeaf<(build_vector), [{ return ISD::isBuildVectorAllZeros(N); }]>; +def immAllOnesV_bc: PatLeaf<(bitconvert), [{ + return ISD::isBuildVectorAllOnes(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 vnot_conv : PatFrag<(ops node:$in), (xor node:$in, immAllOnesV_bc)>; def ineg : PatFrag<(ops node:$in), (sub 0, node:$in)>; // extending load & truncstore fragments.