<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/101873>101873</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
log1p(x), logb(x), ilogb(x) are not folded at the compilation time when x is constant
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
k-arrows
</td>
</tr>
</table>
<pre>
Consider the following C++ example. The functions log2(x), log10(x) and log(x) are folded, but log1p(x), logb(x), ilogb(x) are not.
https://godbolt.org/z/nzrncEE37
```cpp
#include <cmath>
double f1() {
double num = 8.0;
return std::log2(num);
}
double f2() {
double num = 100.0;
return std::log10(num);
}
double f3() {
double num = 2.718281828459045;
return std::log(num);
}
double f4() {
double num = 2.718281828459045;
return std::log1p(num - 1);
}
double f5() {
double num = 48.0;
return std::logb(num);
}
int f6() {
double num = 48.0;
return std::ilogb(num);
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyklN9ypCoQxp-mvaHGwgZHvfAiMxOf4LwACjNyFsESyGTz9FsYk83upnamNlX-qaa7-fEJfsJ7fbFKtVAeoDxlIobRLe23nVgWd_VZ7-T39uis11ItJIyKnJ0x7qrthRwBD4AHop7FNBuVk_9SOtohaGc9Me6CgPUzYAN4TGFBt5gIK9PAe7is80olU2Ufw1o9_9rdfwj1h3jtti7kQE9AH8YQZg_sAbAD7C5O9s6E3C0XwO4FsLMvix0eH1n1Wg57-noN87yNINN2MFEqAuw4TCKMwB633PqULvZGkXMBWKcFQHV4TRCypWycCLATqXMK7D25qBAXS3yQaX3sYftCNk5J1lsdVKfPYHgTVlD6EfcJbd2A-3DsJg7zqqixTjcvG8rLvyu9m8z_IH8NvJ6j1LsjxR348qZwfnNX-5titQ3kvP8qSt9ivR3uTLZMNqwRmWqLCrHaF3RfZmNbNQ0TAx0GWZ2VPJdclnWFtOZn2lDJeaZbpMhpTTmtOUee9xXyUhZ9Q2mN-14Ap2oS2uTGPE3pP8u091G1BS3qimVG9Mr41V4QrbqSNQuIyW2WNjXt-njxwKnRPvif0wQdjGr_wQg2KyEirIY1uGnWRiRTIkFPilxHZckz0Z4MzvogbMjiYtrfjEOHMfb54CbALq1pe-3mxf2vhgDYrUo8YLdJfWrxRwAAAP__y-h9mA">