Add a new vnot_conv predicate for matching vnot's where the allones vector is

bitconverted from some other type.

llvm-svn: 27724
This commit is contained in:
Chris Lattner 2006-04-15 23:39:14 +00:00
parent 7e7ad593cc
commit 41df12ff4c
1 changed files with 6 additions and 0 deletions

View File

@ -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.