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

    <tr>
        <th>Summary</th>
        <td>
            Missed optimization for a loop with dead code
        </td>
    </tr>

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

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

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

<pre>
    Godbolt link:

https://godbolt.org/z/Kaq3sbsr9

Inline code:

```
long patatino() {
    long x = 0;
    for (int i = 0; i < 5; ++i) {
        while (x < 10) {
            if (x % 2 == 0) {
                x += 2;
            } else {
                x += 1;
            }
            // Dead while loop
            while ((x > 20) && (i % 3 == 0) && (x % 5 == 0)) {
                x -= 5;
 }
            // Dead while loop
            while ((x < -5) && (i % 2 == 0) && (x % 3 == 0)) {
                x += 3;
 }
        }
    }
    return x;
}
```

If you remove the two 'dead while loops' then LLVM is able to optimize this down to a constant.
For comparison, GCC trunk seems to do better, but also doesn't optimize this fully

cc: @fhahn/@nikic 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVMtu6zYQ_ZrRZmCDGuphLbS4tquLosm2e0qiLDY06YpU7OTrC8qKYzuPtsAlDEuac-ZxZsARzqmdkbKEdA3pNhKj7-1Qtk2jotq2L-VP29ZWe9TKPAH_AWwLbP7vvT-4YKMKqNqdiUs77ICqV6DqD_E3d7Ubimun341WRmJjW3kXDjI2_6ZPbc0OD8ILr4wFWgEVCPn6DCIiToQTAt8iA34FdHZAoJUyHtUFnl43mIZXoDXQWn2IGM6xV1oG99PEj9mnrHBUN9MoRQp5zqm-oodzmlLzLdJNwW8H8i1K7eR_CBB_FeAT4zQe3ErRzuq0tYePvIvyWfxvSGc1lAFlU0cnrfxW6wU9dyK9Rv-lGYvAS9-V_NLyN7hIPyufvi2f_4_y51HwbwTcGG4-BunHweDp4nxB7-7BfG06fLEjDnJvnyX6XqI_WgTK29u-OKA8wAYfHv58ROVQ1Fqit2gPXu3Va3BWDlt7NMEqsLHGeWH88pyosgM2dn8Qg3LWAG3w52aDfhjNEzop9y54tRZr6b0cAl6PHoV2wSqdAcr9Xa5u1PrlWkzTAP-BkLCuF70JA06YUU-qwagteVvwQkSyjHPKUp5QwqK-lEJy6rKMZ53IeNbwImv4qu6alcjTOI0jVRKjhBVxzljKErZknCVcFC0j2aYxjyFhci-UXmr9vA9bKlLOjbKM2apgWaRFLbWb1iCRkUecUCAKW3Eog9OiHncOEqaV8-49jFdey_JROSfbN-XCK2umRSSmseBR-R6nWYXNF42DLu_Wp_L9WC8buweqQuz5sTgM9i_ZeKBqqsgBVXPJzyX9EwAA___ZfH_W">