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;
|
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:
|
private:
|
||||||
void printImpl(raw_ostream &OS, unsigned indent) const override;
|
void printImpl(raw_ostream &OS, unsigned indent) const override;
|
||||||
bool isEqualImpl(const Matcher *M) const override { return true; }
|
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
|
/// CheckImmAllZerosVMatcher - This check if the current node is an build vector
|
||||||
|
@ -785,6 +786,7 @@ public:
|
||||||
private:
|
private:
|
||||||
void printImpl(raw_ostream &OS, unsigned indent) const override;
|
void printImpl(raw_ostream &OS, unsigned indent) const override;
|
||||||
bool isEqualImpl(const Matcher *M) const override { return true; }
|
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
|
/// CheckFoldableChainNodeMatcher - This checks to see if the current node
|
||||||
|
|
Loading…
Reference in New Issue