<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/88784>88784</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
AArch64 backend incorrectly selecting uabdl
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:AArch64,
miscompilation
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
regehr
</td>
</tr>
</table>
<pre>
this function:
```llvm
define <8 x i16> @f(<8 x i8> %0, <8 x i8> %1, <8 x i16> %2) {
%4 = zext <8 x i8> %0 to <8 x i16>
%5 = ashr <8 x i16> %2, <i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15, i16 15>
%6 = zext <8 x i8> %1 to <8 x i16>
%7 = sub <8 x i16> %4, %6
%8 = add <8 x i16> %5, %7
%9 = xor <8 x i16> %5, %8
ret <8 x i16> %9
}
```
is getting lowered by the AArch64 backend to:
```
_f:
uabdl.8h v0, v0, v1
ret
```
but I don't think that's right. if we call f() like this:
```llvm
%x = call <8 x i16> @f(<8 x i8> <i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>,
<8 x i8> <i8 0, i8 13, i8 0, i8 0, i8 0, i8 0, i8 0, i8 0>,
<8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0,i16 0>)
```
then we should end up with -13 in lane 1. however, the uabdl puts 13 into that lane.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVN2O2ywQfRp8M1qLH_9e-CKbbKTvKT5hgw1dYiLAm2yfvjJ22mySrlp1pSjA-MycYTgz3Hs9jFI2KH9G-S7hU1DWNU4OUrmkteK9CUp76KexC9qOiG0Q3iG8QQVefsa8HRaTkL0eJSC2reAMmhSIvQDKcI9odTFW0UZzjOgWbo3k2ri605wiWgMqnxcSmE0ZILaD7_Ic7mJgCPZjjCu_PPpxr9xDmkiuSQEknw9fsPvAXvw-a_JZ1mX081N7n3QWk6Z5cQWvlksKcQ_PV3h5Ba8j_GwflOQCry5wJ8M9ql4FUe5ulLEctYdBhqDHAYw9SScFtO8QlITNxnWqyKDl3ascBQR7r67l-H-P2AbWT7ieeCtMWimE67copPWf_EQ4GR4GaqcA_4GwI6JlgKD0-ApB8YBo6cHpQYUUdA8nCR03BqJyaQ1Gv8oZ7T-Tf6zmOVYzOv9BH7CtriDmDv-wYS-IbtccPsS_JSAsSvNLCNZbLf2CL5L_682yzgT1wwcLSo7zc3hlJyNglsl0hJMOCp4IAz2C4aMEkoKyJ_km3Rx8FlfUCByn4CHigo0PHeFpIhomalbzRDakJIwSUlCWqIZ1mJR1zsu2YjUpRV5SXGS9zDPMWsz7RDcU0wxnJKcYl5ilOMsrwQshKsF7yXqUYXng2qSzMFLrhkR7P8mmqsoqSwxvpfFx2FK66h6xzdoJiM5DCFF60L6zh6M2PM5cSufR7Jo55FM7DR5l2Ggf_C-SoIORzW1H6bGzzskumHfw0sgutmEsTTI506gQjlHTdI_oftBBTW3a2QOi-6jrZXk6OvtNdgHRfbyLR3Qfr_MjAAD__7DpnUA">