<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/57770>57770</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
AArch32 vbfdotq_f32 causes internal compiler fault
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
fbarchard
</td>
</tr>
</table>
<pre>
A function containing BF16 dot product causes a compiler fault. Intrinsic looks like this
```vacc0x0 = vbfdotq_f32(vacc0x0, va0, vb0);```
Godbolt function that fails in clang15
https://godbolt.org/z/rxxcPjP9q
>From a command line built the error reported is:
```
fatal error: error in backend: Cannot select: 0x5555564090b8: v4bf16 = ARMISD::VEXT 0x55555640d1c0, 0x55555640d1c0, Constant:i32<2>
0x55555640d1c0: v4bf16,ch = CopyFromReg 0x5555560e6648, Register:v4bf16 %114
0x55555640d020: v4bf16 = Register %114
0x55555640d1c0: v4bf16,ch = CopyFromReg 0x5555560e6648, Register:v4bf16 %114
0x55555640d020: v4bf16 = Register %114
0x555556418c40: i32 = Constant<2>
In function: xnn_bf16_gemm_minmax_ukernel_3x4c8__neonbf16_bfdot
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNVE2PmzAQ_TVwsRqZz8CBA5tsqj1UWm2rqjdkGwPeGDtrmzTbX98xJNls-gcaAWbGb2bePDyhun2vatRNijmhFWJaOSKUUD162EU5arVDB6PbiTnEyGS5RQRA40FIblBHJulWCD0pZ4SygiGp9d4iKfYcuUHYAG8DXAc5Xq4jYQyfMAqSLTrSDpK_NV0SB3Fx3gniDTqSZaGwlEHycI0-J5ufX3VLtXQfxN1AwCJCWiSgDUlUH2ULdnDuYIOkDuIdXP0SudKmB-sP3OZ0Ys-vz-XbbYGd0ePS6khUCx0pjugkoKQbOOLGaIMMP2jjeIvEnP5zr4vZEUfkAgfIOQ4IUsL2XLXetyFKgcqWS86cd-BT5n95iktMC-85prSDj-Flq1--PX3f-nJJ_fPx148bdBuxWbl_PRutrCPKZxcgd7KB-3EhiO7h13IQyIa55kYf3r0eL7y_ojHP87TwycErrOO-vwvPOIui9JL_UwUc47uGLuF3Uf85q6hg6RwDep7ZXCS-EfdJXQ-ox56UanyFpufj2IxCjeTUTHtuFJdNckpZ0TSKazVj5vG4O1Mhr6I8T-Iiw1kUtlXSlklJQiec5FVdGzYAm5vBuoysUNCKgoP4eXLDycjqbjqEGya6AhwYUh4vyxf4E3j15zPeCWsnbuElW6_XOByqlrSEEU7yCKeMdkCpKBjJswTsNY1oKAnl0lZB9hDEseK_0ZwC3oNsG4oqxnGMyyiLk2SdRKu4zFpadG1Oi7LM0zJIMR9hsFeehx_b0FQzJTr1FjYlfCj7sUmsFb3ifC4H-cnkBm2qjhKQh5g2nItXM_m_nAJ6yA">