forked from OSchip/llvm-project
convertToSignExtendedInteger should return opInvalidOp instead of asserting if sematics of float does not allow arithmetics.
llvm-svn: 60042
This commit is contained in:
parent
bb1298e6d4
commit
2e5aeff676
|
@ -117,6 +117,11 @@ 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.
|
||||
|
||||
|
@ -1787,7 +1792,8 @@ APFloat::convertToSignExtendedInteger(integerPart *parts, unsigned int width,
|
|||
const integerPart *src;
|
||||
unsigned int dstPartsCount, truncatedBits;
|
||||
|
||||
assertArithmeticOK(*semantics);
|
||||
if (!isArithmeticOk(*semantics))
|
||||
return opInvalidOp;
|
||||
|
||||
*isExact = false;
|
||||
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
; RUN: llvm-as < %s | opt -indvars
|
||||
|
||||
define void @t() nounwind {
|
||||
entry:
|
||||
br label %bb23.i91
|
||||
|
||||
bb23.i91: ; preds = %bb23.i91, %entry
|
||||
%result.0.i89 = phi ppc_fp128 [ 0xM00000000000000000000000000000000, %entry ], [ %0, %bb23.i91 ] ; <ppc_fp128> [#uses=2]
|
||||
%0 = mul ppc_fp128 %result.0.i89, %result.0.i89 ; <ppc_fp128> [#uses=1]
|
||||
br label %bb23.i91
|
||||
}
|
Loading…
Reference in New Issue