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

    <tr>
        <th>Summary</th>
        <td>
            GCC is able to optimize away a loop
        </td>
    </tr>

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

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

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

<pre>
    I ran into this will trying to reduce code for #60761. This is non-sensical code but maybe there's a possible underlying missing optimization which would actually make sense.

```
int multiCompare(const char *haystack)
{
    for (;;) {
        if (*haystack == ' ' || *haystack == '\0') {
            break;
 }
        else {
            do {
 ++haystack;

                if (*haystack == ' ' || *haystack == '\0') {
                    return -1;
                }
 if (*haystack == '|') {
                    break;
 }
            } while (true);

            ++haystack;
 }
    }

    return -1;
}
```

https://godbolt.org/z/YMEz46hdE

GCC will optimize the loop away and only generate `return -1` for the function.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VEtz4ygQ_jWtS5dduPWyDjrEdry1h73tZY9IaltsELgAxeX8-ilkJ4rzmJnLdCEQ0K_vq26k9-pomGvIN5DvEjmG3rr6oByf5TMnje0u9d_opEFlgsXQK49npTUGd1HmiMGi425sGVvbMR6sQ6C0EGWxWuK_UVt5NNYsPBuvWqmves0YcJCXhjH07Bio9CjxZL1XjWYcTcdOTwEG5X1c7SmoQb3IoKzBc6_aHs921B3KNoxS6wsO8okxhuEliB2Ih9tciNuYtsoEHEYd1NYOJxlDr1trfMC2lzH3h15efJDtE1B1c1Burj-IeAO4hnQTB1V4dxtFHSaF2RFCuoN0h0Dl9Su3UG7xaw3ItyIuX3mO0jiWTzH09QbK3b0Oa89fW3b23TnQBmjzBvXV32erP4_oVRyH0RlcrGZ0H2QG-7OMYjK_Ee5XRN4CxlLTHKMFN3Ksie-5-obUe99vm_noM_JZ6b54r3MfwslD-gC0B9ofbddYHZbWHYH2L0D7__55fMmKvnt8b_TXdntt3FsjTZ2H2toTyrO8oDQdWqMveGTDTgZGKMScWSGm0o82h9G0sQuXSVenXZVWMuF6VaxTSgsqq6Svy0OWVoemW1WyyEVbtStadSVR1eRtlbFIVE2CUpGLjFZpmVfLplhXh6yhUqZplhNDJniQSi-1fh4itER5P3JdUF6IRMuGtZ_eLCLDZ5wugSg-Ya6ONotmPHrIhFY--NlLUEFzHblQHmV8aoKdGbkSMZGSjE7XH4hWoR-bZWsHoH30eFsWJ2f_5zYA7ac8PNB-yvNHAAAA__-6V3wk">