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

    <tr>
        <th>Summary</th>
        <td>
            Wrong code at -O1 and above on x86_64-linux_gnu(recent regression)
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    Clang at -O1 and above produces the wrong code.

Bisected to 8773c9be3d9868288f1f46957945d50ff58e4e91, which was committed by @mgudim 

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

```console
% cat reduced.c
int printf(const char *, ...);
int a, b = 7, c;
int *d = &c;
int e() { return 1 & b; }
int main() {
  char f = -1;
  *d = a + f == e() + f + f;
  printf("%d\n", c);
}
%
% clang -O0 reduced.c && ./a.out
1
% clang -O1 reduced.c && ./a.out
0
%
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEU8-v3CgM_muci5UomPzikMPMG82lh-5hpT1WBEjCKgmzQPpe969fMWlnpu1hpYiA_dmfP7BlCHbajOmhPkN9yeQeZ-f7MEuXz7vMF5sNTn_r3xa5TSgj5p8Zyk2jHNxXgzfv9K5MwDgbfPdum1A5bQooL1CejvVsg1HRaIwOu7blSgyGa9E1HXXdyMaqEXUrqlrX5TjWnamMYEBv-D5bNeO7DKjcutqYUgzfEKpynXZtV3wleXPrzS7Go_m4Lc4bD_yEc4y3APwEdAW6Tk4PbomF8xPQ9V-gq_zz0yf-h_8nvGaCpjw-5bbgFvPdSjUqGdGbpFcX6jDbLeLN2y2OQF0KiKhm6RHolCQURQEkgJ-faJnsAwK_YJu26icv0EnffUDNzx4D1AEJhPaM3sTdb8gSCgfgZ4T28oSu0m5P9GHHo67xnjxnj9T4pJQIdD4Q6fggPIxpfYl6iAYioFpD_bbdt0nRi-RHYUD1y03euyn_XD7vM2lJcor0LoXb44Fmvwex_w0qf6X88aSZ7rkWXMjM9KwtOWt5yUQ2901LrBKq61pVEzWMi1YPhjWCNZUwYsxsTyVxRsRYzZu6KgzVmg9jw3Q5al3WUJVmlXYpluXrmnossyHspm8b1lC2yMEs4ceQ-T6B8mGfAlTlYkMMz7Bo42L6vx6z9PvQuQ0_uuZLU-WL3faPL9O2A3XeKLOlBp28CcG6DUhku1_6X6bAxnkfCuVWoGsi_f7Lb979bVQEut4LD0DXe-3_BQAA__9wbirW">