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