summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/APInt.cpp
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2011-12-01 20:58:30 +0000
committerDavid Blaikie <dblaikie@gmail.com>2011-12-01 20:58:30 +0000
commit54c9462c7797e3ff9358d33151fcd319a03d21af (patch)
treedce421ddf26b05071d8292a3f19b337b67636df9 /llvm/lib/Support/APInt.cpp
parent87c665fb8d78b085fd11ba0795393a18f5a79391 (diff)
downloadbcm5719-llvm-54c9462c7797e3ff9358d33151fcd319a03d21af.tar.gz
bcm5719-llvm-54c9462c7797e3ff9358d33151fcd319a03d21af.zip
Fix unreachable return & simplify some branches.
llvm-svn: 145627
Diffstat (limited to 'llvm/lib/Support/APInt.cpp')
-rw-r--r--llvm/lib/Support/APInt.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/llvm/lib/Support/APInt.cpp b/llvm/lib/Support/APInt.cpp
index 55cb433d893..506225f0640 100644
--- a/llvm/lib/Support/APInt.cpp
+++ b/llvm/lib/Support/APInt.cpp
@@ -1440,15 +1440,11 @@ APInt APInt::sqrt() const {
APInt nextSquare((x_old + 1) * (x_old +1));
if (this->ult(square))
return x_old;
- else if (this->ule(nextSquare)) {
- APInt midpoint((nextSquare - square).udiv(two));
- APInt offset(*this - square);
- if (offset.ult(midpoint))
- return x_old;
- else
- return x_old + 1;
- } else
- llvm_unreachable("Error in APInt::sqrt computation");
+ assert(this->ule(nextSquare) && "Error in APInt::sqrt computation");
+ APInt midpoint((nextSquare - square).udiv(two));
+ APInt offset(*this - square);
+ if (offset.ult(midpoint))
+ return x_old;
return x_old + 1;
}
OpenPOWER on IntegriCloud