forked from OSchip/llvm-project
Use m_APInt in SimplifyCFG
Switch from m_Constant to m_APInt per David's request. NFC. Author: Thomas Jablin (tjablin) Reviewers: majnemer cycheng http://reviews.llvm.org/D21440 llvm-svn: 272977
This commit is contained in:
parent
c737ef5d21
commit
5078f94690
|
@ -442,7 +442,7 @@ private:
|
|||
}
|
||||
|
||||
Value *RHSVal;
|
||||
ConstantInt *RHSC;
|
||||
const APInt *RHSC;
|
||||
|
||||
// Pattern match a special case
|
||||
// (x & ~2^z) == y --> x == y || x == y|2^z
|
||||
|
@ -487,8 +487,8 @@ private:
|
|||
);
|
||||
*/
|
||||
if (match(ICI->getOperand(0),
|
||||
m_And(m_Value(RHSVal), m_ConstantInt(RHSC)))) {
|
||||
APInt Mask = ~RHSC->getValue();
|
||||
m_And(m_Value(RHSVal), m_APInt(RHSC)))) {
|
||||
APInt Mask = ~*RHSC;
|
||||
if (Mask.isPowerOf2() && (C->getValue() & ~Mask) == C->getValue()) {
|
||||
// If we already have a value for the switch, it has to match!
|
||||
if (!setValueOnce(RHSVal))
|
||||
|
@ -519,8 +519,8 @@ private:
|
|||
// Shift the range if the compare is fed by an add. This is the range
|
||||
// compare idiom as emitted by instcombine.
|
||||
Value *CandidateVal = I->getOperand(0);
|
||||
if (match(I->getOperand(0), m_Add(m_Value(RHSVal), m_ConstantInt(RHSC)))) {
|
||||
Span = Span.subtract(RHSC->getValue());
|
||||
if (match(I->getOperand(0), m_Add(m_Value(RHSVal), m_APInt(RHSC)))) {
|
||||
Span = Span.subtract(*RHSC);
|
||||
CandidateVal = RHSVal;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue