<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/125990>125990</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/eJx8VN2OqzgMfpr0xhoUEqBwwQXzU2meYhWCKdkJAeWn7c7TrxLabrdzzpGqYuzvi-18xsI5dTSILSlfSfm-E8FPi20tHnGyu34Z_mlXjcIh9CgsnJWfYEaY0CJhb-An5UA58FMEOA-fIJegBziihyV4WEbQ-jS_WByCRMI7QjtS0e0XI4R2A47KIKi8AlLQkbCa8LcaLtFD-AcQVlLCGiD7V0I7iO8MCH8HN4Vx1HhC6RcLvyK9PXm_0S7KKK-EVt9oHwGcJRp_U5xBESPRKG9GdTP2N6P54bmDOeEft1J5KvUbL_5nhQz8cvdWxQPL4JkmohiG_yPSmanw-LzCtXA-wb0NRv4kpOMecqUKbuQiMfHirZAeNc5oflFrTHHrjyaqRb-Jxsoiyrp_fxSX0K7T6oRxRsyXA8JqYQb4BHG0iFFPPwkP5wnNfYyk0BoH0Oor0dzTvBDaRcQfJoW_xVgSPhr890b-Jwz_IKx5yhxH3KIL2oOb0oz3CCyLKNr14dpJnP95VRrjbXedlVNVQHDKHEEGa-PNai3hM34gP7v7a7z6aDMvJ5WxgdDmlG9qc3qhdBzHkdLtuQHD95pnhYvA1Pf9P0WFGbK86p-j-TU6DL-nXrzJiukxuOWbl1MW3eebu3ylpHzfohb9U09R9KTvywuMi91Ud2JGUGYNPrrjlQWPDrYUnZRR3kl4Fwy6VUkR300wy6qXFR3shpYPDW_EDtt8z-s6Z-W-2k1t3rO6HqgsCyFlzspaDJgLWZX7umzKsdqpllFWUkYrylnDq6weyz1H3sh9WWDBGlJQnIXSWVxO2WKPO-VcwDZnZdPQnRY9ape2JWMGz5CihLG4PG2bdl0fjo4UVCvn3X_HeOU1ttddNSt3m5PRLvN9Unohv9AMu2B1O3m_pi-AHQg7HJWfQp_JZSbskBbn9nhZ7fI3Sk_YIZXiCDtcaz217N8AAAD__2c9o1A">