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

    <tr>
        <th>Summary</th>
        <td>
            Wrong code at -O3 on x86_64-linux_gnu (recent regression on `Early Machine Loop Invariant Code Motion`)
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          shao-hua-li
      </td>
    </tr>
</table>

<pre>
    This looks like a recent regression. Clang at -O3 produced the wrong code. `opt-bisect-limit` suggests that the issue might be in `Early Machine Loop Invariant Code Motion`.

Compiler explorer: https://godbolt.org/z/edvh1f84c

```console
% cat a.c
int printf(const char *, ...);
int a, e, f, g, i, h;
long b = 0xFE0BD880D91824DA;
long *c = &b;
char d;
int j[5];
int m() {
 for (; *c < 9;) {
    h = 0;
    long *l = &b;
    a && (*l &= -(unsigned)(0 <= 9));
    return 0;
  }
  return 0;
}
int main() {
  short k;
  f = 0;
  for (; f <= 1; f++) {
    k = g + b;
    for (;;) {
      for (; e <= 1; e++)
        for (; a <= 1; a++)
          ;
      g = 0;
      if (j[i])
        break;
 j[0] = 4;
      if (k)
        for (; d; d++)
          ;
 }
  }
  m();
  *c = 0 < b;
  printf("%d\n", (int)b);
}
%
% clang-tk -O0 a.c && ./a.out
1
% clang-tk -O3 a.c && ./a.out
0
% clang-tk -v
clang version 17.0.0 (https://github.com/llvm/llvm-project.git 20245ed4dea067d281e5d091badf7bcffbb1445b)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /zdata/shaoli/compilers/ccbuilder-compilers
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/10
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Candidate multilib: .;@m64
Selected multilib: .;@m64
%
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VluP3CgT_TX0S8kWxpe2H_qhL_GnSF-Uh420jxE2ZZs0DS3Ak8n--hX0Zdozs1lFykot2oZTpw4FVS7unBw14oaUO1IeVnz2k7EbN3GTTDNPlFx1RvzYfJmkA2XM0YGSRwQOFnvUHiyOFp2TRqewV1yPwD0kn3M4WyPmHgX4CeG7NXqE3ghMgVTUnH3SSYe9T5Q8SU8qCm4eR3TegZ-4j0bSuRnhJMfJQ4cgdTD9wK36AZ94P0mN8H9jzvBRP3ErufawNwLhk_HSaFLRlNADodvLuDens1RoAZ_Pyli0JN_C5P3ZkXxLWEtYOxrRGeVTY0fC2r8Ia1E8TdlQF_0jE6no5dcb7YzC6ywroeceeHoFS-3hbKX2A2F1gHroJ26BsC1he0jTlLCG5LsXNA_zGIYhDGMYZBimO0yFMHZA8gPQ5_YD3R3qmh6arGbFYbtEEbbtI5CwqrsvRQli4fYbKXclKQ-LyRNhNWENkPV1EgYTtNck392o9xD1L1AAMF3k3enC3E2ReqsoLPMwRVgVHUQUqwIwIayedbyhIkSL1TT4DUtNfG8WNBb9bPXCNVkfbo9vVu9rccNc6jd7BjcZ6-H4QDi82d1DYIabuiy-EbaLv1cBOkaKEI8dLOPwQvVeYBeucOEK764e4QsDvjDg_2AAsBAEQeab0wSQQ6ANN0eGm_OapbPIH4IWcJSUh0hVvEt1_Jl0cRn-XfHDaT88Xu_y46245Ua8TotDuKcsYYywUpByr-PjPqiR2hPWdI9sd0eElQ-lIJTCxB8h-UxDTbhd8JSwlqdm9hdo9q5F_hML-p7F0zW5Y_19QhvKMWTrlKY0qH5V5qSf5i7tzYmwVqmn219ytuYb9j4dpQdGWVGiKARyWq0FqzMsBW2yjoth3fXD0HVZUZTd_Ti-cDuiD0X1ua6-VkUy66M233WipJ6fk1HPV9xkkQs4GYEqoM_GyefL0kftPFcKxUHG6hyKsOCeE9aG75GShLX9tYy78Nx3s1QCbfIyG4laM2sBPddCCu4R_rffg7yQ8_htuJDPzoatyy4Epe8Ja6_SXySzNqP_AWf2-znr3095Pdk_UGHvUfyWLe_vyk6z8jJY5VtIQzYV9FQVr1z-DPSSb7cP8kpsctHkDV_hJqsamtV5tc5X06YqRCFEV4n10HQldjkri6LhdZl3ol5TvpIbRllO16yga7Yu87TqMuTY4FAy3olmIAXFE5cqDZkSOoRV7E42VUErulK8Q-ViD8WYxu-X1iWUjfKwspuYXd08OlJQJZ13LyxeeoWbP-_t0a17Mhoeo_h11HPI5DdNVwD-WldEWLOardr8WlEgrI17CnkX9_x3AAAA__9qHtk9">