On Wed, Nov 22, 2017 at 10:12:17AM +0000, Ard Biesheuvel wrote: > On 22 November 2017 at 10:05, Alex Matveev <alxmtvv@xxxxxxxxx> wrote: > > This is better than my simple fix, thank you. > > > > Out of curiosity, why doesn't NEON code use barrier() to prevent > > reordering? > > Because barrier() affects ordering of memory accesses, not register accesses. My understanding was that barrier() also hazards with any volatile asm (and that in general, volatile asm block couldn't be re-ordered w.r.t. one another). I'm sure we rely on this, even if it's not true. :/ So making the asm statements volatile might work too. Thanks, Mark.