<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/81270>81270</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Missing `__prefetch` builtin on clang-cl for Windwos on Arm
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
everton1984
</td>
</tr>
</table>
<pre>
Looking at the list of intrinsice for ARM64 platform https://learn.microsoft.com/en-us/cpp/intrinsics/arm64-intrinsics?view=msvc-170 in the list we see the `__prefetch()` builtin. I have tried the following code with clang 17.0.6 on my Windows on Arm machine
```
#include <intrin.h>
int main(int argc, char* argv[])
{
void *address = (void *)0xF11F11;
__prefetch((void*) address);
return 0;
}
```
which results in
```
.\test.cpp(6,2): error: use of undeclared identifier '__prefetch'
6 | __prefetch((void*) address);
| ^
1 error generated.
```
This code compiles perfectly fine with normal `cl`.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVEHP4yYQ_TXjyygWxg62Dz5kk0aq1L1UlXpcETyOaTFYgON-_77Cztdkq1WloogwY2bgMfOeDEHfLVEHxy9wvGRyiaPzHT3IR2eLtqmym-s_ul-c-1PbO8qIcSQ0OkR0A2obvbZBK8LBeTz9-lVUOBsZB-cnHGOcA5Qn4FfgV0PS23zSyrvghpgrNwG_kj0sAfhVzTPw6z_5kkv6SVSHN1d5fWhaobxM4aEORc1Q29d1VsJAtNkg2Ldvs6eBohqBN8BbEAxvizZR2xx_xlE-CKPX1G8BgzPGrQmgcj3hquOIykh7x6LOWS7QWZw-8Hdte7eGZJ38hJNUo7YE7ALs9JwFe_52k5faKrP0hFCedyj5COVP7zHaRpyktsCbtJT-roCfUY3SAz8l-7FXJ8HY4-ovnwnah9M9Aj_JvvcUAkJ5QeDNpxt4y_66FsW1KKB8Rf3rebbt-258JkqHvQV4iou3yF6--vJDyOuo1YiewmJiSAX6j-fJ4XiOFGK-Vb8RwM98O_eE5L3zabEESp222J6UkZ561D3ZqAdNHoHX70jqPS0iokCoz_j_YOI2UtzngOOzUsV-IbyTJS8j9fmP673Nv4067I2k3DRrQwFn8gOpaD5w0PbZYNb5SZrUrMqAYDlmfVf2bdnKjLqiZnXVCiGqbOxut1szHMUgat4ceV0LyUQjW1lVtWr7gjLdccYrxllbiLKuqrySsmkLOrbNoJRSDVSMJqlNbsxjyp2_ZzqEhbqm4DXLjLyRCZsGcG5pxe0jcJ4kwXcp5nBb7gEqlqgWXlmijoa6rzqERJ7vefdiXCLMRqeDMptQJCKt7pNI2eJN971Y3HUcl9tTI9Jpz7_D7N0fpGLSinTHpBMbhr8DAAD__2Fmcy4">