<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">