<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/61645>61645</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
"crypto" no longer implies "aes" on aarch64
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ebiggers
</td>
</tr>
</table>
<pre>
With `-target aarch64-linux-gnu`, Clang 15 can compile the following code but Clang 16 cannot:
```c
#include <arm_neon.h>
poly128_t __attribute__((target("crypto")))
f(poly64_t a, poly64_t b)
{
return vmull_p64(a, b);
}
```
Clang 16 reports:
```
test.c:6:9: error: always_inline function 'vmull_p64' requires target feature 'aes', but would be inlined into function 'f' that is compiled without support for 'aes'
return vmull_p64(a, b);
^
```
Is this an intentional breaking change?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykU8Gu6yYQ_Rq8GSUiYOx44UXuzYvUL-jSwnhs0xJwYXhp_r6yk9yXVmql6iFkGHnmcOZw0CnZySO2TH0wdS50pjnEFns7TRhT0Yfh3v5qaQZW8R3pOCGB1tHMVblz1uc_d5PPrOJMfMKn036CgwKjPZhwXaxDoBlhDM6Fm_UTmDAg9JleudWa6wMxeWL8zPjrW_HHNM9YSOuNywMCk586XjuPwe9nJr_BT4wH-HNZgrsfxLEj6DpNFG2fCbuOiSMTx0fn216YeF8oMCGYaB7ziTAycVxRqrIj0KsiX1H_I4vVH6-DnyMi5ejh-zU71y1VycRxq16LmPz4qjvDP9R5l-xL0IhLiJT-TdFHSJhob5g8VUyeGiZPgDGGuG60u-l76qx31iOM2RuywQMT9RvBGiL-kW3EBE9TjKgpR1zzNCYm6q2DTHAL2Q3QIzwQB7Cewt9wxxWPZk1g08s3A9wszSETpLysDcEY4hv4_xHwdc3q23_o90sCmm0C7VeC6Fdy2kEfUf--OXfWfkImL8XQyqGRjS6wPVR1o1StVFnMba9UZYwZh7FsBsFlyZUaBjlWVc9NXarCtoILyaWQvC6VKvdy5Lwp1Thy0Q-mQVZyvGrr9s59v-5DnAqbUsa2OlSlKpzu0aXtpQrh8Qbbz9WH6lzEdq3Z9XlKrOTOJko_UMiSw_bduuADuOAnjGCvi7OYgAmxaSsg-NcTL3J07Uy0bHYSFyYuk6U593sTrkxc1hOey26J4Tc0xMRl45WYuGy8_woAAP__oORJew">