<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">