<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/139481>139481</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            fmaximum_num incorrect result for -0/+0
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          gonzalobg
      </td>
    </tr>
</table>

<pre>
    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 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxkU8GO6jgQ_JrOpQVy2oEkhxxgGLTSHlZiR5rjykmc4JVjR7YDO3z9yoY3A3qSJWSqXF1dnRbeq9FI2cBmD5tDJpZwtq4ZrbkJbdsxa23_1fwtJZ5DmD3wHdAR6NhpYcb1aPvW6rC2bgQ63oCO_HM71IMQfyKw3UnOzvZLJ3tspbbXNbDd51kaDGeJysxL8GgHnMR_alqmf8wyoXASVwyF6RFoz4DeUAUU-iq-PDoZFmd8QqLWH_YqL9JFUvLzTVglOJ4tu59unuOVuDKdXnqJwN-6SYQz8PffgNkpEx4A2ykTcBLKAFVANUK5B7ZDRFy8MiN-IPAD9nZptQT-C_tAc0vAB1AV7VD9DM4_4L2ZV9gldHgKBqiab0Bv5vZCjd4uiexDH4fDd5OcumlOwtsUDdA2PUWvbtIOQNXDLNWvWgMCVUktCrLY7D1QZD-s7zopJB1T8aGX7lGK3k-nv07Adymn8oBAeVS734Ao0hJ3fu3kUSm__xO5T9O7D6LrEAqmTVgkZn3D-5rXIpNNXhYlY5ttXWTnph3YtuiZlHXX5VXBeN6RaIstF-VQVHzIVEOMNmyT58Qp58WaKlZuhoGVZVWJmgsomJyE0mutL1P8tDPl_SKbnNdFlWdatFL7tC9ERl4xobGzzSFzTXy0apfRR6vKB_8jE1TQsnmeKirTWedkF9BJv-iAg3W4YmnH9ixbnG5e925U4by0685OQMeo_PhZzc7-K7sAdEx-PNDxYfjS0P8BAAD__2x9IbQ">