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

    <tr>
        <th>Summary</th>
        <td>
            [AArch64] The loop unroll option does not work
        </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/jh4rddjdW
```
void __attribute__((noipa))
check_fmaddsub (double * __restrict a, double *b, double *c, int n)
{
  // #pragma unroll (1)
  // #pragma clang loop unroll(disable)
  #pragma clang loop interleave (disable)
  for (int i = 0; i < 8; ++i)
    {
      a[2*i + 0] = b[2*i + 0] - c[2*i + 0];
 a[2*i + 1] = b[2*i + 1] + c[2*i + 1];
    }
}
```

* clang's assemble: added option **-fno-unroll-loops -mllvm -force-vector-interleave=1** to disable the unroll and interleave
```
check_fmaddsub(double*, double*, double*, int): // @check_fmaddsub(double*, double*, double*, int)
        mov     x8, xzr
.LBB0_1:                                // =>This Inner Loop Header: Depth=1
        add     x9, x1, x8
        ld2     { v0.2d, v1.2d }, [x9]
        add     x9, x2, x8
        ld2     { v2.2d, v3.2d }, [x9]
        add     x9, x0, x8
        add     x8, x8, #32     // the kernel will run 4 times = (128/32 ), so in fact , the loop body is unrolled ?
        cmp     x8, #128
        fsub    v4.2d, v0.2d, v2.2d
 fadd    v5.2d, v1.2d, v3.2d
        st2     { v4.2d, v5.2d }, [x9]
 b.ne    .LBB0_1
        ret
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykVcGOozgQ_ZrKpZSIlCENBw7Q2WhXmuNIe4wMNsHTBke2YXrn61cmkA492R2tFiHA-NVz8epR5s6pSy9lDkkJyXHDB98am4-NaJpNZcRfOVCBXjoPrMDW-6sDVgCdgE6Xut5djKiM9jtjL0CnH0Cnb21shfgm_oToCFEBh2g-p-FolMDzmXtvVTV4eT4DpUBpb9SVA2XhnIB1K-u3c9NxIdxQIVAqzFBpiSGf89lK562qPXKgV_yYqtbDOgxV77G_E8NLeXtAvH0GArGr5ZeO49Bbo3VYbH_HP4HVmvcX1MZc54iQnXK80nIV9gSvei-tlnyU-DSoMTZMhJQVAjtiBKycHl8xDY9AJVCpHkIQHz4pHBySkoAKFcAYQXKcmKqfX2-x_uklsIVszbN_znN7TeUnpv2KacrxuOh_fOqM-UrFTS6gF4fcOdkFgViBXAgp0Fy9Mn0oLVCxbXqzvVVgG9R1uO20HjvcNsbWcjvK2hu7_dAc2HF_C0VvcFYffSuXyvNePJToaZ5rY959OdEu1ns2UL0PRWPF3U9x9D-5HmqO2Jlxur-nAfH-w96md1_KMjrvw7q_OJa02BHYb19b5fCPvpcWvwTf_i65kDawHOXVt5OQq-W5ELfls2n5_XRN1xgtCGe_4hjtSATQuN-RmOxBrwhJ-Z4F6_wbN_2SmxZu9l-5o2fcd0w6zwY2YowedQsuepO2lxq_K63RDj3G6FUn3fTbhKYSWt2JEU6N7hWdQdVjw2uPYRgYpiYR-i4qN5tSCgR2WmdUd9eHjIBYoF4hmtA1EXGMFy3ugk_q3MDN_Glj8liNu3RrSucfJL7TJv8scbXrZQhYPLhis9J_-r82ImciYxnfyHx_SOM0y7Io2bR5lbxkUZKlSSoaXsmsrqOmEk2WVQ0dUpZtVE4RsSihOGJxEiW7Q_xCkr1wxg9Z0-wlxJHsuNK70B7CZrVRzg0yP1AW0UbzSmq3bIE2D6BtNVwcxJFWzruPMK-8njbLorB1e4hD9_u61G1uInOPEkY67I3H78a-bQar80_bp_LtUO1q0wGdwgLzbXu15pusPdBpStIBnaY8_w4AAP__IzERzA">