<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/125989>125989</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            vector miscompile from AArch64 backend
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          regehr
      </td>
    </tr>
</table>

<pre>
    please bear with me here, this is the best I could get out of llvm-reduce:
```llvm
define i16 @f(<8 x i16> %0) {
  %2 = shufflevector <8 x i16> %0, <8 x i16> zeroinitializer, <8 x i32> <i32 4, i32 5, i32 6, i32 7, i32 9, i32 7, i32 5, i32 3>
  %3 = zext <8 x i16> %2 to <8 x i64>
  %new0 = add <8 x i64> %3, %3
  %last = trunc <8 x i64> %new0 to <8 x i16>
  %4 = extractelement <8 x i16> %last, i32 0
  ret i16 %4
}
```
Alive thinks (and I agree) that when this is called like this:
```
call i16 @f(<8 x i16> <i16 0, i16 3, i16 3, i16 3, i16 1, i16 3, i16 3, i16 3>)
```
the result should be 2.

but when I compile to AArch64 using current llc I get:
```
_f:
        movi.2d v1, #0x00ffff0000ffff
        uzp1.4s v0, v0, v0
        and.16b v0, v0, v1
        add.4s  v0, v0, v0
        xtn.4h  v0, v0
        umov.h  w0, v0[0]
        ret
```
and this -- for that same input -- computes 0

cc @hatsunespica @nunoplopes 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8VN2OqzgMfppwYw0KCdBywQXzU2meYhWIKdkJAeWn7c7TrxLabrdzzpGqYuzvi-18xsI5dTSILaleSfWeieCnxbYWjzjZrF_kP-2qUTiEHoWFs_ITzAgTWiTsDfykHCgHfooA5-EThiVoCUf0sAQPywhan-YXizIMSHhHaEdquv1ihNBO4qgMgipqICUdCdsT_raHS_QQ_gGEVZSwBsjuldAO4jsDwt_BTWEcNZ5w8IuFX5HenrzfaBdllFdCq2-0jwDOEo2_Kc6gjJFoVDejvhm7m9H88NzBnPCPW6k8lfqNF_-zQgZ-uXvr8oFl8EwTUUj5f0Q6MxUen1e4Fs4nuLfBDD8J6biHXKmCG7lMTLx4KwaPGmc0v6g1prj1RxPVot9EY1UZZd29P4pLaNdpdcI4I-bLAWF7YSR8gjhaxKinn4SH84TmPkaD0BolaPWVaO5pXgjtIuIPk8LfYiwJHw3-e6P4E4Z_ENY8ZY4jbtEF7cFNacZ7BJZHFO36cO0kzv-8Ko3xtrvODlNdQnDKHGEI1sab1XqAz_iB_Ozur_Hqo828nFTOJKHNqdjU5vRC6TiOI6XbcwOG77XISxeBqe_7f4oKI_Oi7p-jxTUq5e-pF2_ycnoMbvnm5ZRH9_nmrl4pqd63qEX_1FMUPen78gLjYjfVnZgRlFmDj-54ZcGjgy1FNwxR3kl4Fwy6VQ0ivptgllUvKzrIZMtlwxuRYVvs-H5fsKoss6mV407uhqaQUvbImKBScLmT436P2PBGZqpllFWU0Zpy1tAyL-VY03ps-rLiTPYlKSnOQuk8Lqd8scdMORewLVjV7JtMix61S9uSMYNnSFHCWFyetk27rg9HR0qqlfPuv2O88hrb666albvNyWiX-T4pvRi-0MgsWN1O3q_pC2AHwg5H5afQ58MyE3ZIi3N7vKx2-RsHT9ghleIIO1xrPbXs3wAAAP__07ik0Q">