From: Chris Lattner Date: Mon, 5 Mar 2007 00:11:19 +0000 (+0000) Subject: fix a subtle bug that caused an MSVC warning. Thanks to Jeffc for pointing this... X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3c6984969685d164a38d7e45beff4f389db12198;p=oota-llvm.git fix a subtle bug that caused an MSVC warning. Thanks to Jeffc for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34920 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index 028fa734d3d..e8de969c0ef 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -5559,10 +5559,11 @@ Instruction *InstCombiner::FoldShiftByConstant(Value *Op0, ConstantInt *Op1, // Turn (Y + ((X >> C) & CC)) << C -> ((X & (CC << C)) + (Y << C)) Value *Op0BOOp1 = Op0BO->getOperand(1); - if (isLeftShift && Op0BOOp1->hasOneUse() && V2 == Op1 && + if (isLeftShift && Op0BOOp1->hasOneUse() && match(Op0BOOp1, m_And(m_Shr(m_Value(V1), m_Value(V2)),m_ConstantInt(CC))) && - cast(Op0BOOp1)->getOperand(0)-> hasOneUse()) { + cast(Op0BOOp1)->getOperand(0)->hasOneUse() && + V2 == Op1) { Instruction *YS = BinaryOperator::createShl( Op0BO->getOperand(0), Op1, Op0BO->getName());