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

    <tr>
        <th>Summary</th>
        <td>
             [LV] gcc generate better code than clang related to the update of memory address
        </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: https://gcc.godbolt.org/z/3c8f3caKo
```
float foo (void) {
 for (int i = 0; i < N; i++)
   {
      a[i] += b[i]* c[i] + d[i] * e[i] + f[i] * g[i] + 
              h[i] * j[i]  + p[i];
 }
}
```

*  clang: **base address are reused with x0 and x1**
```
.LBB0_1:                                // =>This Inner Loop Header: Depth=1
        add     x0, x11, x8
        add     x1, x12, x8
        ldr     q0, [x0, #8192]
        add     x0, x9, x8
 ldr     q1, [x1, #8192]
        add     x1, x10, x8
        ldr q2, [x0, #8192]
        add     x0, x13, x8
        fmul    v0.2d, v0.2d, v1.2d
        ldr     q1, [x1, #8192]
        add     x1, x14, x8
        fmla    v0.2d, v1.2d, v2.2d
        ldr     q1, [x0, #8192]
        ldr     q2, [x1, #8192]
        add     x0, x15, x8
 add     x1, x16, x8
        fmla    v0.2d, v2.2d, v1.2d
 ldr     q3, [x0, #8192]
        ldr     q1, [x1, #8192]
        add x0, x17, x8
        fmla    v0.2d, v1.2d, v3.2d
        ldr     q1, [x0, #8192]
        add     x0, x18, x8
        adds    x8, x8, #16
 fadd    v0.2d, v0.2d, v1.2d
        ldr     q1, [x0, #8192]
 fadd    v0.2d, v1.2d, v0.2d
        str     q0, [x0, #8192]
 b.ne    .LBB0_1
```
*  gcc: only need one single  **add     x0, x0, 16** to update all the memory address
```
.L2:
        ldr     q30, [x7, x0]
        ldr     q31, [x8, x0]
        ldr     q27, [x10, x0]
        ldr     q28, [x9, x0]
        fmul    v31.2d, v31.2d, v30.2d
        ldr     q29, [x6, x0]
        ldr     q30, [x5, x0]
 fmla    v31.2d, v27.2d, v28.2d
        ldr     q27, [x4, x0]
 ldr     q28, [x3, x0]
        fmla    v31.2d, v29.2d, v30.2d
 ldr     q29, [x2, x0]
        ldr     q30, [x1, x0]
        fmla v31.2d, v27.2d, v28.2d
        fadd    v31.2d, v31.2d, v29.2d
 fadd    v31.2d, v31.2d, v30.2d
        str     q31, [x1, x0]
 add     x0, x0, 16
        cmp     x0, 8192
        bne .L2
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykVstu6zYQ_Rp6M7gGH9ZroYV9XaNFg66KbgtKHD0uaNFXpNOkX19QlmTLkRInFQyRzBydmTnkTCitrcsGMSXBjgT7lTy7yrTpc6GKYpUZ9ZoSvgWH1hGxhcq5kyViS_iB8EOZ5-vSqMxotzZtSfjhX8IPIo8LkcvfDaF7QrckpP2vWxbaSAeFMUB4_GxqRXgCJNpdrFCY1hvqxkENROyBErHrpt_hj25K-K77Jf0XcPN190gS7GoS7MHDxB6yfu3zyG9soK6LLeCtpbi1lLeWW0fDU92ifwyLDn4afIshRBLte13GyVSg_s23ALmWTellJ9z_IZMWQSrVorUgW4QWzxYV_FO7Cl4oyEbBC7tgZ6nXT7sd_Zt5xg-ey_76DSDilz-r2sJvTYMtPBlzgl9RKmw9yx5PriJiz6aySKW68YUS_h1eGOuGeAF0sTI-B9Kq7cafHRMJdhdKwkXMEu6Ffc9xMqEcudjAxR7i6uOjS_H95F-JjYk5vuJ41n58pmuuPOA6YX4yL87XEtrMB6DlNAA2TPgDAbyrwAjnn4u3FyyYxHufTfhYNnxGzjEu8bk0Hpd9SCH6pOTi_0p-r2G8UIm2Aw3WCyELh57cs3zxUM4H-JaUTdgnpNY91gaydYMeNzS62f7qO2uZ575_mUa_QoOowDQItm5KjdB32zvpurc_ZR2BM3A-KekQpNbgKoQjHk37OrTnhfbL_b_OebnEmFrU-1s8d2KUNv4IyqPxjNIPsfGATRagY3cS1xN6nb3dtit1MlCHHyY36hDcQ8dCuTrl0TiL33E_qrC555zJXixm_9Z9Mpf9TNr88bTZe-4fTX2srrmdukR9V4YPbulYiYItBrxQOROe_Hi6wXRVPLFnDYKvl2kdrVQqVCISucKUhXFAKQtCsarSfJMnRZxvGM8iGsSqCCKeZUHGs1BKypJVnXLKBQ14QKMg4WIdF2GWhzIRQYhFoSKyoXiUtV5r_Xz0t9lVbe0Z05AnIlhpmaG2wx25TT3oW3YuLdlQXVtnr5-52mlMvTJPf_l7YJnnUGKDre8WGTqHLeRGIbhKNpcrHrSopUPl24rvJX1rMcVdV1mdW53eXcFrV52zdW6OhB98DP3w7dSaH5g7wg9dHpbwQ5fKfwEAAP__xIfkCA">