<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/64666>64666</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Loop Vectorizer] __builtin_assume_separate_storage is not propagated to LV AA
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
komalon1
</td>
</tr>
</table>
<pre>
See reproducer in https://godbolt.org/z/c7ea3b85Y
Adding `restrict` to the function parameters makes vectorization safe.
Using `__builtin_assume_separate_storage(a1, a2);` should provide the same information as the `restrict` in this case, yet the loop is not vectorized.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEkk9vnDAQxT-NuVhZwfBn8YHDphGn3KpG6mk14AHcGIw8Q6rk01ewm1bKpReQPPab35s3yOzGhahR5aMqnxLcZAqxeQ0z-rBkSRfse_OdSEdaY7BbT1G7RU8iK6v8oqBV0I7BdsHLKcRRQfuhoO3PhHlXlz9V-qTSy8Vat4xaVWkkluh6UVWqJWiZSA_b0osLi14x4kxCkfWMr8T6jXoJ0X3gUWYc6HTT-8F3ueu125wXt1yReZvpyrSrCF1ZQsSRFNSYKfimERQYlT_ujXkKm7d6jeHNWTogGGfSbhlCnG_dkI_zL8hu0TI51j0y7arvJMc1H8KqHeslyF9qsnfa2zexTW5NbjChJqtMZkxRGJNMTWdNatKyGDLo8vNgenuGwdY09HldmzMkroEU8rTOirSCOjOnAUpIK5sXZZFjjaSKlGZ0_uT927ynkDjmjZqqqKoq8diR5yNggIV-66OoAPa8Y7O_eei2kVWResfC_1TEiT8243m39_LpK6rySf938p_jWGNYcUQhuwf-_KIvl2SLvvmyQk6mrTv1YVbQ7gD338Mawy_qRUF7YLOC9rD1JwAA__94r-ZC">