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

    <tr>
        <th>Summary</th>
        <td>
            Loop gets vectorized when it can be folded to a constant
        </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>
    ```
#include <stdint.h>

int64_t foo() {
    int64_t result = 0;
    for (int r = 0; r < 7; r++) {
 for (int s = 0; s < 10; s++) {
            for (int t = 0; t < 10; t++) {
                if (t + s + r == 10) {
                    result += 1;
                }
            }
        }
    }
    return result;
}
```

https://clang.godbolt.org/z/vfWGc1MWK

Changing the condition from `t + s + r` into `t + s` results in LLVM optimizing the code to just:

```
foo:
        mov     eax, 63
 ret
```

cc: @fhahn 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEU01z4ygQ_TWtS1dcCNmyfNAhtld72OS6OU4hPiRSMrhEy5nJr58C27GcTGUoFbR4vNfNA0QItnNa17DawmqfiYl6P9ZKSpu1Xv2qoWSXj-2BPQIvrJPDpDRCsQukrKNFD8U_Fzj11lG5_EFovAdeAd8grLdnCBHxCo86TAMhFHtkUMwWGD8i8Mo6wvEDTuEO1ykEvk3fXHnGCjdWSKz8HP-JNmszhVtZKbwq0F8U0vZMFCEEnrLzc-X7qJezb5mxXU3h20S482XeYL3_CnyZvJu4-xk1TaO7pPvI8rHk87Gnvic6BigegTfAGzkI1y06r1o_0MKPHfDmHXhzMi__yvz55b85ddcL11nXIfUapXfKkvUOzegPCCW7cwtKFu-InwFx6lxqQOvw6en_Z_RHsgf7fhNVGsnj6xQo1jhL_mkz8VpeF1yNOvhTGrX4CXyHZXGBR03fGCIlFI8IS2Z60TvMVF2oTbERma7zNS9XRVXmVdbXQuZS6UqYVbky63YpWlMJszYbEUfDMltzxpdsk68ZZ0VRLaqVUflyI_hKFtwIDUumD8IOi2E4HaLZmQ1h0nXOqk3OskG0egjpEXPu9BsmFDiPb3qsI-mhnboASzbYQOEmQ5YGXT95f8ROU8CTluRH-64VvvXaoSWUwmGr0fhBaRUtFvEEAwlH2TQO9f216Cz1U7uQ_gC8iWkuw8Nx9K9aEvAmFReAN5fqTzX_HQAA__-wRTcP">