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

    <tr>
        <th>Summary</th>
        <td>
            AArch64: Missed post-increment opportunity
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:AArch64
      </td>
    </tr>

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

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

<pre>
    Repro:
```
#include <arm_neon.h>
void partialWrite(uint8_t* p, uint16x8_t vec) {
 vst1q_lane_u16(reinterpret_cast<uint16_t*>(p), vec, 0);
    vst1q_lane_u8(p + 2, vreinterpretq_u8_u16(vec), 2);
}
```
Currently produces:
```
$ clang++ -target aarch64-redhat-linux-gnu -march=armv9-a+sve2+fp16 repro.cpp
...
       add     x8, x0, #2
        str     h0, [x0]
 st1     { v0.b }[2], [x8]
        ret
```
misses the opportunity to use post-increment on the first str Could be the following (as produced by GCC):
```
       str     h0, [x0], 2
       st1     {v0.b}[2], [x0]
 ret
```

(this mirrors meta T222168293 )
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8U0GPqzYQ_jXDZRRkxhDgwAGyTU_vUlXqMTIwG9yCzbNNmu2vr8xm3253qxdFjMx888188xnlvb4a5gaKDoqnRG1hsq75psI_3CW9HV-a33h1FmQLooWjePxFCyS1GeZtZAR5Um65GLYmnUD-AqK9WT3iqlzQav7D6cBA1aZNqC4BqMUV6ITxnB3v1SXgjQegGqHsQLR48yH7fpmV4cuWHYEqx9oEdqvjcBmUDyBPr8U7W-xI1QpUR9ad6oQiHuVOh_gfxiqCEahD2vEfyL9fturR8nWiCKAfTFA-fVrCaXOOTZhfcHV23Ab2_7eoHIdZmStQF7segnJXDqiUG6ZjfnA8TiocZm22--FqNjwsMQPySbnlVh8UUOdvTEDd85od0UU_0mFdQbRpmj4UIqIaxz3eqzj2XcQnkKR3BPrg9ji9JovuLqCIotCHbM9A2eFNpD1GsUVHMf2AVg_o4-c4fFK6aO_ZY5gY7bpaFzajwwsGi5tnXK0PB20GxwubgNbswGftfNjnOtltHrHn19d2nu3f2lwRqFL-bb0j9i_46-m0W_J50T_XuDv5AfRDblT7VezbXr6q3C2twqQ9Lto56zwuHBT-TkTZsaJaIlCdjI0ca1mrhJuszIu8yERVJVMjn5WiI2cq66uyqLPnkopBSuJ6HKksx0Q3JKgQOUmSMqMqVXk_8sBZnw9cCpFBLnhRek7n-bak1l0T7f3GTSZLUeXJrHqe_f5BE_Vq-IvNCLJt2_26AUWViWti8aHfrh5yMWsf_Dtd0GHm5q1AtvgtGjt-cfDd42RzczOFsO73n85A56sO09ang12AzpH6EQ6rs3_yEIDO-9ge6PyY_NbQvwEAAP__-nRTeQ">