Issue 139481
Summary fmaximum_num incorrect result for -0/+0
Labels new issue
Assignees
Reporter gonzalobg
    See https://clang.godbolt.org/z/3W6f9faaK 
Reproduced below.
When the inputs of maximum_num are -0 and +0, it always returns +0.
However, clang returns -0.

```cpp
#include <cmath>
#include <print>

int main() {
    using T = double;
    T nz = T(-0.);
    T pz = T(+0.);
    T r = fmaximum_num(pz,nz);
    int v = std::memcmp(&r, &pz, sizeof(double));
    if (v == 0) return 0;
    std::println(stderr, "ERROR: {} != {}", r, pz);
    return 1;
}
```

cc @lntue 
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to