From 794a7dbce030f93315b1305f83a374232f09bba5 Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Wed, 26 Nov 2008 01:11:57 +0000 Subject: [PATCH] Revert r60042. IndVarSimplify should check if APFloat is PPCDoubleDouble first before trying to convert it to an integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60072 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Support/APFloat.cpp | 8 +------- lib/Transforms/Scalar/IndVarSimplify.cpp | 2 ++ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/lib/Support/APFloat.cpp b/lib/Support/APFloat.cpp index 128fee4f01f..a65e55afb56 100644 --- a/lib/Support/APFloat.cpp +++ b/lib/Support/APFloat.cpp @@ -117,11 +117,6 @@ namespace { && "Compile-time arithmetic does not support these semantics"); } - static inline bool - isArithmeticOk(const llvm::fltSemantics &semantics) { - return semantics.arithmeticOK; - } - /* Return the value of a decimal exponent of the form [+-]ddddddd. @@ -1792,8 +1787,7 @@ APFloat::convertToSignExtendedInteger(integerPart *parts, unsigned int width, const integerPart *src; unsigned int dstPartsCount, truncatedBits; - if (!isArithmeticOk(*semantics)) - return opInvalidOp; + assertArithmeticOK(*semantics); *isExact = false; diff --git a/lib/Transforms/Scalar/IndVarSimplify.cpp b/lib/Transforms/Scalar/IndVarSimplify.cpp index 128b19778fc..fabbf6e19e5 100644 --- a/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/lib/Transforms/Scalar/IndVarSimplify.cpp @@ -742,6 +742,8 @@ static bool useSIToFPInst(ConstantFP &InitV, ConstantFP &ExitV, static bool convertToInt(const APFloat &APF, uint64_t *intVal) { bool isExact = false; + if (&APF.getSemantics() == &APFloat::PPCDoubleDouble) + return false; if (APF.convertToInteger(intVal, 32, APF.isNegative(), APFloat::rmTowardZero, &isExact) != APFloat::opOK) -- 2.34.1