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

    <tr>
        <th>Summary</th>
        <td>
            [optimization] gcc generate better code than clang related to loop ivopts
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          vfdff
      </td>
    </tr>
</table>

<pre>
    test case: see detail on https://godbolt.org/z/oE5PeP8sb
```
void func(int ij, int l, int k, double rhog[ADM_lall][ADM_kall][ADM_gall],
          double rhog_split[ADM_lall][ADM_kall][ADM_gall] ) {
        for (ij = 0; ij < ADM_gall; ij++) {
                rhog[l][k][ij] += rhog_split[l][k][ij];
        }
}
```

* gcc's kernel loop
```
.L2:
  ldr d0, [x1, x0]
  ldr d1, [x2, x0]
  fadd d0, d0, d1
  str d0, [x1, x0]
  add x0, x0, 8
  cmp x0, x3
  bne .L2
```
* clang's kernel loop
```
.LBB0_1: // =>This Inner Loop Header: Depth=1
  lsl x11, x10, #3
  add x10, x10, #1
  cmp x10, #1156
  ldr d0, [x8, x11]
  ldr d1, [x9, x11]
  fadd d0, d0, d1
  str d0, [x9, x11]
  b.ne .LBB0_1
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNVEuPmzAQ_jXmMmoEBgIcOITNVq20lfbQ-8rgAbxxMMImTffX1-aRbLpptZFj5uH5ZuYby6Xiv3OD2kDFNJJwBxoROBomJKgOWmN6bc2EfrWrUbxU0mzU0Fjtzf7VY_yMz6kuib8n_o5s_WVN6kkJDvXYVYSmojMgXgl9ACfJVTg4gauxlAhDqxoSF7v9jxfJpCTxftEON1qzaPRhzgKX3zucF91LYT6PBoRmQJJi6cPPajWAK_sVSLgHn4QFTPIDXKImE6HFtG6j7Vq6WVId5o89P-UqHOhNnXfO2QRXwGS_yBfhlutlpztoKst3ouGAQ4cSpFL93YjNE3WTXTiUfADuu2nY9OfACWffFfHeH6x--sFfM84XgGUPVpc2_4d2kWd_Mds9XR3VsV8d4WorOwRX-V0ObPeVZF3zyf6Lwn8J3KWfr7ebNAkff7ZCw_euwwGebCx8Q8ZxcMf22JvWHrp0JrWEczB3FMwd0jC86Ws2X73BTXNXcxBv748ineODf84i-3jg08O4E1tuJoZnbu7x5vE85FmYMc8IIzG3OKo34ijemBGqcxfcXkFo0DLIDEKJxlguK8URTMu6eUQwoLReDkZNIwJxsijaGweZ__XqCNOO5aZSR6tIeVo_X_pBvWJlrCq0HlFbIY6iOPDaPEoTTNMkyVKsym1U8jpLyirNwjTZsgipJ1mJUrvaCaUd_oIJwsq2fE_k1KfUD4PMp1HkZxvEtKZRvE2zKqMsiEnk49E-kRtXh3sOvSGfSirHRlunFNroq5NpLZoOJ6ocPhtNq4b8VPO69qbE-VT4H-eFgzc">