<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">