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

    <tr>
        <th>Summary</th>
        <td>
            Riscv behavior inconsistency and x86 about nanf
        </td>
    </tr>

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

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

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

<pre>
    

**test.cpp:**

```
#include "math.h"
#include <time.h>
#include <iostream>
int main () {  
char buf[BUFSIZ];
std::cout << -nanf("") << " " << -nanf("hello") << std::endl;
printf("%a %a\n", -nanf(""), -nanf("hello"));
return 1;
}


```

cmd:
```
clang++ --target=riscv64-unknow-linux-gnu  --gcc-toolchain=/home/luyahan/riscv64/ --sysroot=/home/luyahan/riscv64/sysroot/ ./test.cpp -O3 -o test
```
Result:
On x64:
```
-nan -nan
```

On riscv
```
nan nan
```

disasm riscv:

```
 b9a:   de7ff0ef                jal     ra,980 <nanf@plt>
 b9e:   20a51053                fneg.s  ft0,fa0
 ba2:   42000053                fcvt.d.s        ft0,ft0
```
After call nanf, it run fneg.s and fcvt, but fcvt insr ignores the sign bit of -nan according to riscv-spec 13.3.



**clang version:**
```
clang version 15.0.0 (https://github.com/llvm/llvm-project/ 7c4b90a98d3bcd54c21f5cac340c2310dbc37705)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/luyahan/./v8/v8/third_party/llvm-build/Release+Asserts/bin
```

riscv64-gcc verison riscv64-glibc-ubuntu-20.04-nightly-2021.12.22-nightly.tar.gz
```
Using built-in specs.
COLLECT_GCC=riscv64-unknown-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/home/luyahan/riscv64/bin/../libexec/gcc/riscv64-unknown-linux-gnu/11.1.0/lto-wrapper
Target: riscv64-unknown-linux-gnu
Configured with: /home/runner/work/riscv-gnu-toolchain/riscv-gnu-toolchain/riscv-gcc/configure --target=riscv64-unknown-linux-gnu --prefix=/opt/riscv --with-sysroot=/opt/riscv/sysroot --with-pkgversion=g5964b5cd727 --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++,fortran --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libsanitizer --disable-nls --disable-bootstrap --src=.././riscv-gcc --disable-multilib --with-abi=lp64d --with-arch=rv64gc --with-tune=rocket --with-isa-spec=2.2 'CFLAGS_FOR_TARGET=-O2   -mcmodel=medlow' 'CXXFLAGS_FOR_TARGET=-O2   -mcmodel=medlow'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 11.1.0 (g5964b5cd727) 

```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVVllv4yoU_jXOC7LleMnykIc0aUYjVeoo7eiO7kuFAdtMMfgC7vbr7wHHTtJJW03lOuZsnPWDQtHXVRBvg3h9eCfusczYiLRtkB4IZyKz-PAcNFIuiegoQ0GSNNjWUQ0ffzLTjeUNA2Z6fYnJlbGa4WZkc2lRg7kEs4sgWaJgfoVQzyI11qjoyiC_uvq5u_v-b5Bvg_SqZxpLnd_pmqjOOsvwoFBiWXpDiX-WAwNW_f8fcjUTQp0Lj6aZpGLcsNXg6mg8x8i9gnwj_frC3u-IJxu5ZzCrme20RNOREMy3Z3W4WI0-P43385IAEVhWQXIFDwpDi3XFbJBuNTfkaZaFnXyU6jkUXHYvYSU7BEIVIaFVSkDWuQTZINnVqmHwI7pXXGOIc3fQhy9QMK9GK2W_FB3kQCmC19B1KLxNUaiQW1-MYc9MJ-wY4a1EL2Dvg4Bdon22P8kXWPBeXRRx-p-rU26waQ4m0s_Kg4ol9hJLyuZlGbMSjX9A_I0FvDWGBlkuYtd1vkuyuHXhXo82WG8jiXE-jfP0zEYpWRUZ92FjsFPicWuc9GpZEsPfezXyZCN6qmjjiyGsS8s0IlgI1LfwBnGLdCdRvzPCkiJnzXEKmED3jbg0GvFKKs0MsjVDBhaoAE1V-uogTIjSlMsKWdWnMjQtI2iaRml0oe9P4Mr3NHpi2nAl32PWhfYfRNE0j-IodgBTW9sar7qDp-K27oqIqMZ1rngafsJWq9-M-I6dk6xYxni5oGlBaJ6RZFrmBJM0i0mSTmNakHQ-j3M30n7r-8OsrdHLYvYwzpo8DttBrgYYpKhRlAkn3SrDX3rWd2ksJJ7RLdeOdWm83CQ9LYaXrbmmDy3W9nWIoei4oLDYM8GwAeWrtTFMWwO0gn_W5wNIACC4FHKjDnPjaIIXJOyKTtouTCCrWSh5VVvxCqtkGk2TKEkGUgS4E1VvF7f6aVwPOCdtCODvesAc6r-5vbm53tw_fNts_oCskzQ6_84Vbu5vH_7Zr3_8uN5_CUouBZBFl0YIib0w4hqCkKPQhcIluymEGMVOyarwWeO2Zfp93T_W771VsuRVpxlFz9CA5wWGAZNgMdk9K_04-OKjPULzF1QfAxk2-Rj9TxwDoVazEvrPp021djAHHOfkOdaf8I_wPki2j9U4otsqX86yIid0nsxPTFnWhG-QdiAxiQvBQgNHPSRkXFthjgs3zB2uGEzuFoLbkP5gc-iltNUO-EMHzl6WF01HS4Hbc6Ix7wj_dZi6a8w7MSy55W8AfUey9L4MqwJihSuMt280AZd8E0WnBTgRb-AI432oPnpccFAR7SyjI0mT2lUHSlORgWg7yRxRkUc25hZserQEBswZtM18s7tZf7t72N3uH-7X-2_X98AKbxMA-7AhB2zZNowK9QzSXuPXr7_S-RKt7rq2hTJA9WD-EIAptJLxuItFpTT43TjIRa7gvcYBWHps9gPlsPm0V_xl7OPzdUJXKV2mSzyx3Aq22vtWLViNn7iCA0hC-xsObSbJqz-oAIoRLtxF0R1mk06L1V8fBdyYjjn0zGd5upzUq7ykNCnmi4SWJMVZFi9wusALUi6WsxzTeCJwwYRZwfUVrn2SPSNvwl0B8-2ErwAwk3g-zeN5lkIaaLKI5-kizfOsyBZ0BvcBBhdjETk_IqWriV4dkL0ywBQQoDkysXFnLWN-O7CPO1sr0Oixb-K3XnnX_wfS_5VT">