https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97528
avieira at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |avieira at gcc dot gnu.org --- Comment #7 from avieira at gcc dot gnu.org --- Hi, I am seeing this same fault cause a wrong-code gen on gcc-9 with the code below: void foo(uint16_t *dest, uint16x8_t a, unsigned long long stride) { int i = 3; stride >>= 1; do { vst1_u16(dest, vget_low_u16(a)); dest += stride; i = i - 1; } while (i != 0); } leading to: foo: vst1.16 {d0}, [r0], r0 vst1.16 {d0}, [r0], r0 vst1.16 {d0}, [r0] bx lr which is obviously wrong. Can we backport this to gcc-9?