[all-commits] [llvm/llvm-project] 6c9c69: [flang] Retain the sign of the argument for the re...
vdonaldson via All-commits
all-commits at lists.llvm.org
Fri May 26 09:24:57 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 6c9c69bd761653372999c09c7862290f8793068a
https://github.com/llvm/llvm-project/commit/6c9c69bd761653372999c09c7862290f8793068a
Author: V Donaldson <vdonaldson at nvidia.com>
Date: 2023-05-26 (Fri, 26 May 2023)
Changed paths:
M flang/runtime/numeric.cpp
Log Message:
-----------
[flang] Retain the sign of the argument for the result of fraction(0)
The f18 clause 16.9.80 description of the FRACTION(X) intrinsic states:
Result Value. The result has the value ....
If X has the value zero, the result is zero.
If X is an IEEE NaN, the result is that NaN.
If X is an IEEE infinity, the result is an IEEE NaN.
This clause does not specify whether fraction(-0.0) should be -0.0 or +0.0.
However, a folded result and a runtime result should be consistent, and
returning -0.0 is more in line with the result for fraction(NaN).
For this test:
print '(2f6.1)', 0.0, fraction(0.0)
call f(0.0)
print '(2f6.1)', -0.0, fraction(-0.0)
call f(-0.0)
end
subroutine f(x)
print '(2f6.1)', x, fraction(x)
end
Current output is:
0.0 0.0
0.0 0.0
-0.0 -0.0
-0.0 0.0
Change that to:
0.0 0.0
0.0 0.0
-0.0 -0.0
-0.0 -0.0
More information about the All-commits
mailing list