Fix unreachable return & simplify some branches.

llvm-svn: 145627
This commit is contained in:
David Blaikie 2011-12-01 20:58:30 +00:00
parent 3c06b26f09
commit a787220c76

View File

@ -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;
}