This improves X86 factoring a little bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@355785
91177308-0d34-0410-b5e6-
96231b3b80d8
return false;
}
+bool CheckImmAllOnesVMatcher::isContradictoryImpl(const Matcher *M) const {
+ // AllZeros is contradictory.
+ if (const auto *CIAZVM = dyn_cast<CheckImmAllZerosVMatcher>(M))
+ return true;
+ return false;
+}
+
+bool CheckImmAllZerosVMatcher::isContradictoryImpl(const Matcher *M) const {
+ // AllOnes is contradictory.
+ if (const auto *CIAOVM = dyn_cast<CheckImmAllOnesVMatcher>(M))
+ return true;
+ return false;
+}
private:
void printImpl(raw_ostream &OS, unsigned indent) const override;
bool isEqualImpl(const Matcher *M) const override { return true; }
+ bool isContradictoryImpl(const Matcher *M) const override;
};
/// CheckImmAllZerosVMatcher - This check if the current node is an build vector
private:
void printImpl(raw_ostream &OS, unsigned indent) const override;
bool isEqualImpl(const Matcher *M) const override { return true; }
+ bool isContradictoryImpl(const Matcher *M) const override;
};
/// CheckFoldableChainNodeMatcher - This checks to see if the current node