https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107714
--- Comment #4 from Kevin Bracey <kevin.bracey at alifsemi dot com> --- The assembler's rejection of the vld2 is valid - the only permitted post-indexed form is to use "!" for increment by 32 (the amount read). Experimenting by changing "inStep" you can see the compiler backend knows that 32 is the only valid constant offset - it generates the "!" form for that correctly - but it apparently hasn't been told not to use register offsets.