<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJzdVk1zmzAQ_TX4slOPkMCGAwfna9IZdyaTaXvoTUKyUaMIVxKOnV_fBUNimsRJp7cyDKxWq6ent4uEqOW--FopWNXG1A_arqGspQJv9WajAtgaTG3XysHG1bIplQcuZWVBWx9cUwZdWx_Rc-AehFrVTkVsEZGLiAzPGenvrinVSlsFETtPYAea0YhdQpQQ_6vhOJZm2EPbnlnS9dB016K_8D5GNIdofnZABbzQuce4i5bfy_gBBT2Ak2Kjt9jlMdseSJP3kHCy8Yi4G2F85V4O0eS92QcU2qGgsLZ8BSaGUD-53-TO3ub--Dr35BR39lHu6UnuyYe4zzoMXzWrlVFbVYbajQcdVDouiWd32ruPKwt5Mwqd_q0RDwYdDDZah8OS_wOhZdVTnV-8WtOH51dc-N3p4u-LnHVTnbwieoX30YfxxLC97utt937IDvlkSHUUIJtN997SKZVtzC4bB7TVMQrYksHoPK8Hk78JjoeY-O3g5nFDe-TE98i9EbfGKBhzc0L-5fIcYjYlU_JfJgB33EMC_IeCKYykfDP4tKZX2vkAgks8E-7vdQDtW-245IRmJaOrZF7yLOFEzIVKZcxFoliZJ2yVpTnHfSg9WyxcWeEukF7AApfMIXBh1FpZ2PAQlLN48Dj49uOGTuFMe_zilQSxb4VfKqGk2t5-hhGnurES9XXtUWX1ugpmD9fcaDy0gvKhdWsLN7dQdU7M4nVvsFka5xNZMJmznE94E6raFdyonVPa3uHISeNMUYWwadd5KIG1DlUjpigANozZDq9PeB7-RLrY1N43CqW-SmmOE1SFzEWqhEhlNstXMxrPc5FngnAWk5LwOZ0YLpTxBeqDwkz-fUpdUELjmNKcUpoQ_AjYTKgkLmMiaMpljHKqe67NtMWZ1m49cUUHKZq1x06jffDPndx7vbZKDQyDDkYVy-X3L93-fnf0W4CpVI6Hp_-C2gLnXc4nHcmiY_gbA2QrWQ>52919</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            LLVM trunk no longer generates addhn on aarch64
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    The following code snippet no longer produces addhn instructions, as before:

```
define <4 x i32> @square(<2 x i64> %x, <2 x i64> %z) {
    %y = add <2 x i64> %x, <i64 32, i64 32>

    %i0 = add <2 x i64> %x, %y
    %i1 = lshr <2 x i64> %i0, <i64 32, i64 32>
    %i2 = trunc <2 x i64> %i1 to <2 x i32>

    %i3 = add <2 x i64> %z, %y
    %i4 = lshr <2 x i64> %i3, <i64 32, i64 32>
    %i5 = trunc <2 x i64> %i4 to <2 x i32>

    %i6 = shufflevector <2 x i32> %i2, <2 x i32> %i5, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
    ret <4 x i32> %i6
}
```

Trunk:

```
square:                                 // @square
        mov     w8, #32
        dup     v2.2d, x8
        add     v2.2d, v0.2d, v2.2d
        add     v0.2d, v0.2d, v2.2d
        add     v1.2d, v1.2d, v2.2d
        uzp2    v0.4s, v0.4s, v1.4s
        ret
```

LLC 13.0.0

```
square:                                 // @square
        mov     w8, #32
        dup     v2.2d, x8
        add     v2.2d, v0.2d, v2.2d
        addhn   v0.2s, v0.2d, v2.2d
        addhn2  v0.4s, v1.2d, v2.2d
        ret
```

First bad commit is: ada028c32f47ca84a0b7be5d1ab4e3c943f859a3 [AArch64] Add a tablegen pattern for UZP2. Bisected by @LebedevRI 

Found during nightly Halide testing in PR halide/Halide#6519
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzdVU1v4zYQ_TXyZVCDIiVbOuiQjw22gAssFtseeiPFkcWGoVyS8ib59R3JUtZqEm96rSCIw-Hw8fFxxFGdfqq-tQhNZ2333bg91J1GCM4cDhjBdWA7t0cPB9_pvsYAUuvWgXEh-r6OpnMh4TcgAyhsOo-JuErYbcLm74ZN79jV2BiHkIibDB7BCJ6IT5BkLPzdS5rLCxrhw8gmG0d4_jigv_I-J7yEZHt9QgV6yPlEcbcDv9fxMwp5gBalzmSJT-dsJyDDfoZEiy1npOMMG1r_eophP1t9RuEjCgnr6jdgUojdi_td7uJ97s9vc88ucRcf5Z5f5J59iPtmxAht3zQWj1jHzi8nnVQ6T4kf7nxyn2cW8RYcRv0HI50NPhtisQ9PKf8vhIHVRHV7-2ZOn77faOP3l5N_SnIxLnXxSfgdvWc_xgvD4XnojmP7vTidpyCqiwDdH8b2yNdcDzGPxTJgyI5FwJHNxuh5O5j9l-B0jknfD-6fD3xCzsKEPBnpYCyC6WwuyL_b3UAq1mzN_pcHQDfu6QDCh4I5LKR8N_iypnfGhwhKaqoJDw8mggmDdlJLxota8Cbb1rLIJFNbhblOpcpQ1GUmmiIvJd1D-fXVla9bugXyW7iiLUuIUlnco4ODjBG9o8Lj4fc_v_A1XJtAfzxqUE-D8DtUqPH49VdYcOp6p0lfP5QqZ_ZttE_wWVpDRStiiIPbOPjyFdrRSaf4eTLEJk_Lla6ELkUpV9FEi9Vu98dv46V1f1briB96GV-KXedAynEjq97bqo3xMChxSpK9iW2v1iQRdaw9zs0vVDH_og1R14TQIx3GXc5LotBWmhc8lyVu01TybZMXTBaqyGslVbNFxVZWKrShIgVJupWpOONpynnJOc8YJbnYKMzSOmWKcHRKcuGDNHY9LLzu_H7lq5GD6veBBq0JMfwYlCGYvUOc8WUf285X0uKjR-PuScTVyLkaCf8DcWQWOw">