diff options
| -rw-r--r-- | llvm/lib/Target/TargetSelectionDAG.td | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Target/TargetSelectionDAG.td b/llvm/lib/Target/TargetSelectionDAG.td index 8a881b93a8d..89a2c945e41 100644 --- a/llvm/lib/Target/TargetSelectionDAG.td +++ b/llvm/lib/Target/TargetSelectionDAG.td @@ -405,15 +405,18 @@ def immAllOnes : PatLeaf<(imm), [{ return N->isAllOnesValue(); }]>;  def immAllOnesV: PatLeaf<(build_vector), [{    return ISD::isBuildVectorAllOnes(N);  }]>; +def immAllOnesV_bc: PatLeaf<(bitconvert), [{ +  return ISD::isBuildVectorAllOnes(N); +}]>;  def immAllZerosV: PatLeaf<(build_vector), [{    return ISD::isBuildVectorAllZeros(N);  }]>; - -def immAllOnesV_bc: PatLeaf<(bitconvert), [{ -  return ISD::isBuildVectorAllOnes(N); +def immAllZerosV_bc: PatLeaf<(bitconvert), [{ +  return ISD::isBuildVectorAllZeros(N);  }]>; +  // Other helper fragments.  def not  : PatFrag<(ops node:$in), (xor node:$in, immAllOnes)>;  def vnot : PatFrag<(ops node:$in), (xor node:$in, immAllOnesV)>;  | 

