diff --git a/include/llvm/Support/PatternMatch.h b/include/llvm/Support/PatternMatch.h index 37657bdb339..04ebe2c9076 100644 --- a/include/llvm/Support/PatternMatch.h +++ b/include/llvm/Support/PatternMatch.h @@ -192,7 +192,7 @@ struct neg_match { return matchIfNeg(I->getOperand(0), I->getOperand(1)); if (ConstantExpr *CE = dyn_cast(V)) if (CE->getOpcode() == Instruction::Sub) - return matchIfNeg(I->getOperand(0), I->getOperand(1)); + return matchIfNeg(CE->getOperand(0), CE->getOperand(1)); if (ConstantInt *CI = dyn_cast(V)) return L.match(ConstantExpr::getNeg(CI)); return false; @@ -202,7 +202,7 @@ private: if (!LHS->getType()->isFloatingPoint()) return LHS == Constant::getNullValue(LHS->getType()) && L.match(RHS); else - return LHS == ConstantFP::get(Bop->getType(), -0.0) && L.match(RHS); + return LHS == ConstantFP::get(LHS->getType(), -0.0) && L.match(RHS); } };