This improves X86 factoring a little bit.
llvm-svn: 355785
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