forked from OSchip/llvm-project
[TableGen] Make CheckImmAllOnesVMatcher and CheckImmAllZerosVMatcher contradictory matchers.
This improves X86 factoring a little bit. llvm-svn: 355785
This commit is contained in:
parent
1a872f2b15
commit
a2b144fc74
|
@ -412,3 +412,16 @@ bool CheckValueTypeMatcher::isContradictoryImpl(const Matcher *M) const {
|
|||
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;
|
||||
}
|
||||
|
|
|
@ -770,6 +770,7 @@ public:
|
|||
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
|
||||
|
@ -785,6 +786,7 @@ public:
|
|||
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
|
||||
|
|
Loading…
Reference in New Issue