<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/57278>57278</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[SLP] gcc generate better code than clang base on stride offset
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
vfdff
</td>
</tr>
</table>
<pre>
* test case, see https://gcc.godbolt.org/z/9E5beqnWW
```
void foo ( float *restrict fi, real *restrict f, int ci) {
/* Add accumulated i-forces to the force array */
for (int i = 0; i < UNROLLI; i++) {
for (int d = 0; d < DIM; d++) {
f[(ci*UNROLLI+i)*F_STRIDE+d] += fi[i*FI_STRIDE+d];
}
}
return;
}
```
* gcc: SLP
* llvm: unroll
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx9U01v4yAQ_TX4Mmpk49hJDj44TSNFyn6o3VWPKwyDw4qYLuBI3V-_g9s0TQ5rYXnmDbz3gHHn1GvDeAsRQwQpAjJ-DwERDjG-BFa2jG9p9FLOeqc6Z-PM-Z6Qv_SuHqoO_wzPzyzfsLxldf4-pvTkjALtHDC-BG2diBS1noS8kRFAm6TlUdgbPMFmIDs0YQVssX7jAzh_KUquWmiVAiHleBytiKjA3GnnJQaIDuIBYcpAeC9ek0Za9UFBteQsCRlg5QZyVq6n8B5-fn38tt_vJoDx9TSunLw_nzjUhUNNHJvdlyn53_qJg1VUXabNtmddvk5bJ2D76-nH427zQIhi1QYSE8nQ0VVpSrvdXU8gxRsJtth8OrZzcoY8xtEPH6su9eurTGdNLUDtAE_77xfM2tMxgePgnbUZNkVdF8WC11WZqaZUq3IlsmiixYYMp6W0ByKCHgf0dGXQYYzoQTqFdGNiAGnF0ENHnQhugNQTVHFaB4zZ6G1z05cmHsZuJt2RksnN2-fuxbvfKCOlJoQRAwXVgi-W2aEpNVKgpcJaoyqQ1_Nyqeu80pwqc5lZ0aENyTHZzUzDc87zJecFr_KqnM3rvEBd15yXRSl1weY5HoWxsySc_o7MN5OHbuwDFa0JMVyKIgTTD4hnfjHGg_PNSSuts8lsMzn9B6jTAuE">