mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-07 14:33:15 +00:00
convertToSignExtendedInteger should return opInvalidOp instead of asserting if sematics of float does not allow arithmetics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60042 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
878ef1d5bc
commit
88f2d6c167
@ -117,6 +117,11 @@ namespace {
|
|||||||
&& "Compile-time arithmetic does not support these semantics");
|
&& "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
|
/* Return the value of a decimal exponent of the form
|
||||||
[+-]ddddddd.
|
[+-]ddddddd.
|
||||||
|
|
||||||
@ -1787,7 +1792,8 @@ APFloat::convertToSignExtendedInteger(integerPart *parts, unsigned int width,
|
|||||||
const integerPart *src;
|
const integerPart *src;
|
||||||
unsigned int dstPartsCount, truncatedBits;
|
unsigned int dstPartsCount, truncatedBits;
|
||||||
|
|
||||||
assertArithmeticOK(*semantics);
|
if (!isArithmeticOk(*semantics))
|
||||||
|
return opInvalidOp;
|
||||||
|
|
||||||
*isExact = false;
|
*isExact = false;
|
||||||
|
|
||||||
|
11
test/Transforms/IndVarsSimplify/2008-11-25-APFloatAssert.ll
Normal file
11
test/Transforms/IndVarsSimplify/2008-11-25-APFloatAssert.ll
Normal file
@ -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…
x
Reference in New Issue
Block a user