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

    <tr>
        <th>Summary</th>
        <td>
            Reopen of  Bug 49389 - Condition not constant folded 
        </td>
    </tr>

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

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

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

<pre>
    This old issue doesn't seem to be fixed as all: https://bugs.llvm.org/show_bug.cgi?id=49389
Bug 49389 would be reposted below (godbolt link: https://godbolt.org/z/hdza9Pb8z):
```c
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>

#define N 1234

bool eat_digits(uint8_t s[N]) {
    size_t i = 0;
    while (i < N) {
        uint8_t c = s[i];
        if ('0' <= c && c <= '9') {
            i += 1;
        } else {
            break;
 }
    }
    return i <= N;
}
```
compiles to:
```asm
eat_digits:                             # @eat_digits
 xor     ecx, ecx
.LBB0_1:                                # =>This Inner Loop Header: Depth=1
        mov     rax, rcx
        cmp rcx, 1234
        je      .LBB0_3
        movzx   edx, byte ptr [rdi + rax]
        add     dl, -48
        lea     rcx, [rax + 1]
 cmp     dl, 10
        jb      .LBB0_1
.LBB0_3:
        cmp     rax, 1235
        setb    al
        ret
```
GCC is able to compile it to:
```asm
eat_digits:
        mov     eax, 1
 ret
```

This is originally from: https://github.com/rust-lang/rust/issues/81432
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVU2PozgQ_TWVS6kjsCGEA4dOmOyuNGqtVntvGVwE9zg4ss30x69f2SQdMsnMaqJWG_tVvfcoG5dwTu0HogryDeT1Qoy-N7by5MYXtWiMfK_-7ZVDoyUq50ZCacgNwAqPjuiA3mBD2Kk3kigcCq2BP2Lv_dEBfwS2A7Zrxr1bav39sDR2D2znevP63Iz7ZbtXwHdKAq-zkq9LSGpIHjfjHuMUX82oZeC3dDTOU3jW5hWBrfdGNkZ71Gr4dqt4Qk96H8B2vfwQ5d_N-gNYGcKiEqyS6a89zRlXQ6tHSQh867xUg1_2wL_8BJbU_QpujNFz_BwlqVMD4ROmjGdzLCQgCf8s1V55B2w9qsGvnz06yDdPkNfASoRiM4UjIjr1Qc8eFQKvMQE-g157pSnUKoBbfLrJDb-zQBsJgowKMvyHMNUFImBFAqwIdCG6RWArYKuYHFeAFSWw4q5SpEFgmxCY3ihAUSNpR_cTG0vi2yUHivoSczWx5Ec7xHpER0-fSZ9hn7s-TVtzOCpNDr25PRjCHaaV2a7wK2c3P2AcIUtmCZO5N2MjTu0bsG0cIrD8utkkz-n_0Z6ZeQ38S_wm_xoGsvjVmCP-SUKSDRQ1HX0PvE6va3gw3-NoRRS3Z_Ez3h6OcZFtZ4fyDL7QNE5O-Q3zx1t4LRmzm3dPePQWId9YGfc7iub1dZqQMo5Sh6yHbH0NaxKT38lTIBNvkSy9UAXTF440-cF1M3edzovNPzd6_v6z-qSM59cBjnzkE_p63ZK_e6r-2G5RORSNpnBHng4ZKv8bx-z-FtLJ4gn9mYHpfzwo4f62aq8GofU7dtYc7tyYyvdjs2zNAdjOjs4_aDHsT8_AdvHyd8B26zTjbCErLkteigVVaZFmnJdJzhZ9lXXpulh1WdlmBYmyXMm2Ldskz2XLqVx3C1WxhGVJxtYsTQvOlk2yYrxJKSu7PC1FFz6dg1D6s2EsonRVJllaLLRoSLvYrRgb6HVqSsBYaF62CjkPod1Almjl_KXtLLzymqp_yBxpQNMhXtrMA27NIJVXZsDBeGzN4LwYPHZGS5K4GK2uflGuoHEaHo7WvFB7VbHo_L8AAAD__89S_XE">