Use dyn_cast instead of isa && cast. No functionality change.
authorJakub Staszak <kubastaszak@gmail.com>
Wed, 6 Mar 2013 00:16:16 +0000 (00:16 +0000)
committerJakub Staszak <kubastaszak@gmail.com>
Wed, 6 Mar 2013 00:16:16 +0000 (00:16 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176537 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/ValueTracking.cpp

index 8e3994e8f52079b511bbf2e4aacf8dfc9382651e..45b75df508757609a59dfceec8a9db7ebb746a49 100644 (file)
@@ -1396,10 +1396,10 @@ bool llvm::CannotBeNegativeZero(const Value *V, unsigned Depth) {
       return true;
 
   // (add x, 0.0) is guaranteed to return +0.0, not -0.0.
-  if (I->getOpcode() == Instruction::FAdd &&
-      isa<ConstantFP>(I->getOperand(1)) &&
-      cast<ConstantFP>(I->getOperand(1))->isNullValue())
-    return true;
+  if (I->getOpcode() == Instruction::FAdd)
+    if (ConstantFP *CFP = dyn_cast<ConstantFP>(I->getOperand(1)))
+      if (CFP->isNullValue())
+        return true;
 
   // sitofp and uitofp turn into +0.0 for zero.
   if (isa<SIToFPInst>(I) || isa<UIToFPInst>(I))