diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-03-23 23:51:45 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-03-23 23:51:45 +0000 |
commit | ea00b499c703bbdbf4c87573cf2fe5b46a0bf1c2 (patch) | |
tree | 662608e8cdefe69d39b0620f5c3690add0796c0b /llvm/lib/Support/APFloat.cpp | |
parent | cbfe7bb72e6de9db72bbcbe8c697bf3b7627e18d (diff) | |
download | bcm5719-llvm-ea00b499c703bbdbf4c87573cf2fe5b46a0bf1c2.tar.gz bcm5719-llvm-ea00b499c703bbdbf4c87573cf2fe5b46a0bf1c2.zip |
APFloat: Fix signalling nans for scalbn
llvm-svn: 264219
Diffstat (limited to 'llvm/lib/Support/APFloat.cpp')
-rw-r--r-- | llvm/lib/Support/APFloat.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Support/APFloat.cpp b/llvm/lib/Support/APFloat.cpp index ada392c519b..a8e14d6c08b 100644 --- a/llvm/lib/Support/APFloat.cpp +++ b/llvm/lib/Support/APFloat.cpp @@ -3984,6 +3984,8 @@ APFloat llvm::scalbn(APFloat X, int Exp, APFloat::roundingMode RoundingMode) { // Clamp to one past the range ends to let normalize handle overlflow. X.exponent += std::min(std::max(Exp, -MaxIncrement - 1), MaxIncrement); X.normalize(RoundingMode, lfExactlyZero); + if (X.isNaN()) + X.makeQuiet(); return X; } |