On 18/09/15 09:05, James Greenhalgh wrote: > On Thu, Sep 17, 2015 at 05:40:48PM +0100, Matthew Wahab wrote: >> Hello, >> >> ARMv8.1 adds atomic swap and atomic load-operate instructions with >> optional memory ordering specifiers. This patch adds an expander to >> generate a BIC instruction that can be explicitly called when >> implementing the atomic__fetch pattern to calculate the value to >> be returned by the operation. >> > > Why not make the "*_one_cmpl_3" pattern > named (remove the leading *) and call that in your atomic__fetch > patterns as: > > and_one_cmpl_3 > > I'd rather that than to add a pettern that simply expands to the same > thing. I overlooked that pattern when I was trying to find the bic emitter. I've attached an updated patch. Tested as part of the series for aarch64-none-linux-gnu with native bootstrap and make check. Also tested for aarch64-none-elf with cross-compiled check-gcc on an ARMv8.1 emulator with +lse enabled by default. Ok for trunk? Matthew 2015-09-21 Matthew Wahab * config/aarch64/aarch64.md (_one_cmpl_3): Make a named pattern.