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

    <tr>
        <th>Summary</th>
        <td>
            wrong code at Os and above with -mllvm -enable-newgvn
        </td>
    </tr>

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

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

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

<pre>
    This appears to affect clang 5.* and later. 

```
[518] % clangtk -v
clang version 15.0.0 (https://github.com/llvm/llvm-project.git 4d2eda2bb3156cee63ea486be34b01164b178e10)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/opfuzz/bin
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/8
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/6
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/11
Candidate multilib: .;@m64
Selected multilib: .;@m64
[519] % 
[519] % clangtk -O0 small.c; ./a.out
[520] % clangtk -O3 small.c; ./a.out
[521] % 
[521] % clangtk -O3 -mllvm -enable-newgvn small.c
[522] % timeout -s 9 5 ./a.out
Killed
[523] % 
[523] % cat small.c
int printf(const char *, ...);
int a;
short b;
int main() {
  short d = 0;
  a = 9;
  for (; a > 5; a--)
    ;
  short e = a;
  void *f();
  if (e < 7) {
  L:
    d = a;
    a = ~(d & (&f || a));
  }
  while (a >= d)
    ;
  while (a == d)
    printf("0");
  if (b <= a)
    goto L;
  return 0;
}
```

Compiler Explorer: https://godbolt.org/z/sT1G5seEP
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy1Vt9v4zYM_mucF8KGf8rOgx96SXsYdsANWN8HyZId7RTLkOSk618_yk5cN-1tGNYGhiOJ5MePlESaaf5X_XiQFugwCGosOA20bUXjoFG076CIgvQOaM9BUSdMBEG8D-K7y5vEl2eeFl-KpAqKPQRpMdu7HxCeZumMdxLGSt1DUkRxFKNidXBusEF2F6QP-HTSHUYWNfqIE6VO179wMPpPpBWhAuQ8FZymjGVJQRohSCZoXhEmspzFSUJylpSVSOIg3c6-H6nphEMn8FSRP0gejv2PXp_7UMl-fAq7frzoHYygHI6aC-W1B23l0yz6pbeOKiX4Xhov8rx0QxX-2_E5vI710I7Pzzhgsp8NH_SI2WswhZJjCuHrbgdyBqMOU3EBG63xkJL5JDQNviWpyIpg-lD9T8BL7GvIJP4EzOTjMcknQEZ4BD8etvwEyM9hejlOvwuF90rwD9nz3cLsOConvRWiREH2JcjjI8lvXP6T0lRNttdq8t7aUmG-x2CPSDtqEAOB0gca6dG92KTxW5vs32ySt75f1tY44dFXKAhFT5kSYS_O3alf0F-M06uxk0eBviC0sIXi1vmv0peZlV32DpFlraHutSvZOxgMvlssro3GDYXmQA0qY4ndQRRFvixirhdtuszsQRsH7JX0SLGSpRUaQVBe1gFmTQ5Btod40Qeg08p2tdJq77vyWfbCeyimYRgu1RnwtzKYocUERFfrJy25j6Kd2awksvUevMUOyhui33xrWdzwN6hXykF5jxjeAZnopgRByx0-qI7eXjkMyv11eD5IJbzFFJxH4j8L7JXq_q3qsmtBigcWj8s7QTIf5BzD2rTT2Li_rbSNcKPpV1uzUL5t2vO91ccByRm4fxqUNmJqcTedWXOmlYu06XDmW5x9TL4WVtz_tuF1xrfZlm6cdErUZ6Ox1TfYRQFP53c7fT9Qpk8Cztjf378wm9Go-r99DPgmae0oLA4KkuTbzaFuyiKjSZyTNie0qgThLW3KsmBJ1uZZHG8UZULZGm8RXqGNrNMYs01S_GzIyjiL8qppmSgYT5smIzzBkiTwCqjIO_bBb0w9cWBjZ1GopHX2RUitlV0vxBWfjg6Pc_18ED3HpNhxMzGuJ7p_AxMRvGM">