<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/113607>113607</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
ISel sinks math library calls below fesetenv
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
hiraditya
</td>
</tr>
</table>
<pre>
```c
#include <fenv.h>
#include <math.h>
__attribute__((const))
long double myrintl(long double x);
long double nearbyintl(long double x) {
fenv_t e;
fegetenv(&e);
long double result = rintl(x);
fesetenv(&e);
return result;
}
```
clang++ -O3
```asm
nearbyintl:
sub sp, sp, #48
stp x29, x30, [sp, #32]
add x29, sp, #32
sub x0, x29, #8
str q0, [sp]
bl fegetenv
sub x0, x29, #8
bl fesetenv
ldr q0, [sp]
ldp x29, x30, [sp, #32]
add sp, sp, #48
b rintl // moved here.
```
https://godbolt.org/z/7h7v1xKee
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykVM9ymzwQf5rlookHVsbAgUMcf8x800MPfQCPhNagVoArCcfu03fAskOSpjmUwV6G_f3TipFwTjc9UQnpFtJdJEbfDrZstRVK-4uI5KAuJWzi611DvIP4EZDrvjajIgb86UD9adUC_-9PzU74dtHc74X3VsvR034PmAPm9dA7D1hM94wxQ98wNYzSEOsuVvfeAObLt-cJy7fB7x2pJ2Hl5QMegywQGZuS7z2juxY7UEOe-tMcbUNLH8aWUpbcaDwDvmO3hOfX6AO5D6Us-dH2QeRlJdkuPNzmvVxhbUTfAG4Bt-zhK1-27njhuuubxQj44y3R9XKjvNYj4FP4B-TrPMCcP87987QlT-zM4xmRbu9QjpDuXosKpZakJfSd-XkWDEhAnr-BeDvXnwvft3bSXOt9u0L0sLRPHF7YbskOl1Gf-xv1DzP6aPC3dKHOnxUDrAAr1g0nUqwlS6u_fCKt90c3bfhMagYlB-NXg20Aq1-AVdZmp-T8hShSJVcFL0REZZJhkRUpZhi1ZR5nuFF5IUWaKZXFElN5QKlIrEmopI50iTGuk-mXr5MEV1jIpN6sZXrAVOWpgnVMndBmZcypm7wj7dxIZZLwTZxFRkgybj5uEHt6ZnMXcBpXZMuJ9CDHxsE6Ntp59yLjtTdU_v-NDHO6_-HYdLQwo6UV9sJqYYxjkszwfN_XaLSmfDMT7dtRruqhA6wm6VAejnb4TrUHrOZADrAKiU8l_g4AAP__5hRpjA">