<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/65936>65936</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[vectorization] gcc generate better code for a loop body with control flow
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
erickq
</td>
</tr>
</table>
<pre>
test: https://godbolt.org/z/YWE89hKvn
```
void test(int** aa, int* a, int LEN_2D)
{
for (int j = 0; j < LEN_2D; j++) {
for (int i = j+1; i < LEN_2D; i++) {
a[i] -= aa[j][i] * a[j];
}
}
return;
}
```
- gcc: generate a sve loop
![image](https://github.com/llvm/llvm-project/assets/12108571/2c650d06-e868-4859-88b4-69678fde0e09)
- llvm: failed with vectorization
![image](https://github.com/llvm/llvm-project/assets/12108571/b088b7fa-a86c-41b3-972f-26badb02da69)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0k8GOmzwQx59muFhEZoyNfeCQLMvl-9Rr1VNl8JB4y-ItOFl1n74ySTbatFLVQy0LPAPz039mPHZZ_H4iqkHuQDaZPcZDmGuaff_te9YF96OOtEQQW3aI8WUBsQVsAdt9cF0Y4ybMe8D2DbD98vlRm8N_pwl4A3wLil_2ap6Cd2xFofZTBNwCbpm1gA_sbLPrmf3_-OkrNoDmQqp25wO7rCHM7IxhTwxEwziI3Xp8uMYmG3C3bsN-IdxR_EpJAUWK9Hck_wdSWhbkzoNsWJ5QNplPIJur95zfxSd-w4Cq-ej84JgpHufpPfD9212Rz8-c7fs-dWxPE802ErNsOREbQ3i5_IdFEvZs95T0oL7rrY-HY7fpwzNgO46n6yt_mcMT9RGwtctCcQFsCyy4llUB2GKvJHdc5aSVzkstTa51V-bKqEoPjjhxc2vqReqKF1s2WD-SY68-HtiJ-hhm_2ajD9O_VNxxrbtqsLnVqs_LohO5qXDIUXXWdRydVTfFmauFM8LYjOpCmbJE5EJmh1r0OJROJ5SUJRnjykKQrhwKybEbMl8jR8FNUXBdVoXcFK5z_aBISMWN6glKTs_Wj5ukOY1U5pflSLWSRqhstB2Ny3VC53pNrDvuFyj56Je43MKij-M6yx9LKJt0JW73oaMYaWZ9cLSOgV3vBkvjfu5AH6Y4h5ENY3jNjvNY_3W51wRSudccfgYAAP__7UE7oQ">