<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/131343>131343</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[LLVM-IR] long/ulong to floating point conversion is giving wrong results for cortex-a9
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
MrcSnm
</td>
</tr>
</table>
<pre>
```c
extern void sceClibPrintf(const char* fmt, ...);
void test_clang()
{
int64_t a = 1000000;
double b = a;
sceClibPrintf("%f\n", b);
sceClibPrintf("%lld\n", a);
}
```
I discovered that while building for PS Vita.
Build with: `clang -c .\test_clang.c -mcpu=cortex-a9 --target=armv7a-unknown-unknown -mfloat-abi=hard`
When running, b is printing 0.0.
And please, of course I've tested that with GCC, so, the problem is not printing. I've discovered that issue because of having wrong numbers.
If I did instead `double b = 1000000`, it works correctly.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0U12r2zgQ_TXjl8FGlu18PPghNyHLhRbKFrqPRZbHtrayFKRx0v77Rc5NbvdCjdEI5uucMyMVoxkdUQvNCzSnTC08-dB-Dvqrm7PO979a2Ij7r0Ec6CdTcHj1pseo6WhN9yUYxwPInfYuMupJBZAHHGYGecSiKEDuoXoBcQBxWBOZIn_XVrkR5C55xQG2KQAR0Tje1N8ZFUJ1wlKs3z0_uXu_dJawW73qWTe5PuIBKUE2AzRHt16P2D2h_Dne2v63DPUOfntK50OMe9tX7E3U_kqBeuRJMd4mk-AtxvbGjTj4gF--4jfDqrinvCQX3gxPUB0wyZqEwFxjAc3xXZpCYz7rywLVSfvA9DNXe8xzVmEkhuqkwnzdqnxxP5y_uYfFfB6sV5yrzkB1mlTo72D_mchhWJwzSfUjdmgiXhL1BFMU4g3ewfV4saQipSg_oPZLiISvILdXWkf3pGp4wr-OxxQYfTp5IrwE31maU3nn-dmieFT4KJiJcSHsSKslUmo4qWuCdAvejeiWuaMQ38C9DpgU79G4yKT6JN__FuKxLhuR4BjGmw8_ImofAmm2v4qsb6t-X-1VRm25rcv9pil3dTa1YqBu0F3VSaX3_VaR2uxKtdvVOyU0UZmZVgrZiKqsy6asRF2IYdjtm00t6oH2TaOgFjQrYwtrr3Phw5it1NqyKqu6yqzqyMb1nUnp6HYnntasOWWhTUl5t4wRamFN5Phehg3b9YF--vTtc_76NzQntD6N8bwki-xxHXqS7eKNY9TeXSlE412aw2h-UzRQXCzHdTOfi5UtwbYT8yVCdQB5BnkeDU9LV2g_gzwnLG8mvwT_L2kGeV4ZRJDnN4rXVv4XAAD__ybzV9M">