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