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

    <tr>
        <th>Summary</th>
        <td>
            arm neon missing support for increment/decrement
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:ARM,
            backend:NEON
      </td>
    </tr>

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

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

<pre>
    Consider the following code:

```c
#include <arm_neon.h>

void foo (int32x4_t *a) {
    *a = *a + 1;
}

void bar (int32x4_t *a) {
    ++*a;
}


void baz (int32x4_t *a) {
    *a += 1;
}
```

In Clang, this produces the error:
```
<source>:8:5: error: cannot increment value of type 'int32x4_t' (vector of 4 'int32_t' values)
    ++*a;
    ^ ~~
```
This is supported by GCC.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNUk2P2yAQ_TX4ghrZEH_k4EPiJFUP3UpV7ysM44QugQhw2vTXd3CSzW67rdYabGaGeZ73mN6pc9s5G7QCT-Me6OCMcT-03VHpFBC-JPma5Ld3lV9MXn3GtZVmVEAJ74Q_PFpwdrYnfPOy7OS0QmBHCWu0jZz9nD9GdJaCsAUl9epyjOKTgoi1vm7YihaEX_OkXv-F2gv_LtTVZJj6B9gryF_vbhRBsde3Wrwp9RL-k6WdEXZHWIda60CP3qlRQpiUB--dvwv-BwDvghu9hCQtXza4SlzPRVQKa12keB0eDmAjPQkzAnUDjecjXg-rnwnhPhE8gYzOpxPz5_QlOZUGpPxfBadwuUFZNsne6vpbIokWxuPR-Qgo7pl-7LpZBm1RVawqq2KRZ6rlasEXIos6GmhxjmiaI3rQIaRJvJbjCPk7QcK2Cq77bPSm3cd4DEk_tkXb6bgf-5l0B3SMOd0-H1Dz78gcXUSfaG7LumJNtm8HqOeqWQwNK3pZgFL9UPWSSy5qqQZZZUb0YEJLSlSC9UI-gVX4x-XXz-inW30Vfth8eUjxcp3pluWM5Yu8KZAzz2cKmUsxVGw-KFHmNZnncBDazFKPM-d3mW-ndvtxFzBpdIjhnhQozM4CTK0gvhjj3vnWavmkIIjRWA0-ZBPDdqL3G8dJHP4">