[AArch64][PATCH 5/5] Use atomic load-operate instructions for update-fetch patterns.

Ramana Radhakrishnan ramana.radhakrishnan@foss.arm.com
Fri Sep 18 16:27:00 GMT 2015


Hi Andrew,


>>
>> Tested 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.
> 
> 
> Are you going to add some builtins for MIN/MAX support too?

The ACLE does not specify special intrinsics for any of the atomic instructions,
implementing the GCC intrinsics for atomics. The AArch64 backend is consistent
with the ACLE in terms of the intrinsics that have been added into it.

Having had some internal discussions on this topic - I've been made aware that there are proposals such as
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3696.htm, though not considered for C++14 might
be a useful avenue to explore. It is better to add intrinsics to the general GCC language extensions that
matched with this or were suitable rather than something to the AArch64 backend.

We have no immediate plans of doing so - Is this something you can help with ?

regards
Ramana

> 
> Thanks,
> Andrew Pinski
> 
>>
>> Ok for trunk?
>> Matthew
>>
>> 2015-09-17  Matthew Wahab  <matthew.wahab@arm.com>
>>
>>         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
>>         Adjust declaration.
>>         * config/aarch64/aarch64.c (aarch64_emit_bic): New.
>>         (aarch64_gen_atomic_load_op): Adjust comment.  Add parameter
>>         out_result.  Update to support update-fetch operations.
>>         * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
>>         Adjust for change to aarch64_gen_atomic_ldop.
>>         (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
>>         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
>>         (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
>>         (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
>>         (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
>>
>> gcc/testsuite
>> 2015-09-17  Matthew Wahab  <matthew.wahab@arm.com>
>>
>>         * gcc.target/aarch64/atomic-inst-ldadd.c: Add tests for
>>         update-fetch operations.
>>         * gcc.target/aarch64/atomic-inst-ldlogic.c: Likewise.
>>



More information about the Gcc-patches mailing list