Gentle Ping ________________________________ From: [email protected] <[email protected]> Sent: 14 July 2026 15:22 To: [email protected] <[email protected]> Cc: Richard Earnshaw <[email protected]>; Tamar Christina <[email protected]>; [email protected] <[email protected]>; Wilco Dijkstra <[email protected]>; Alex Coplan <[email protected]>; Alice Carlotti <[email protected]>; Richard Ball <[email protected]> Subject: [PATCH v3 0/2] aarch64: Add support for FEAT_CMH
From: Richard Ball <[email protected]> v3: Add some minor changes to atomic_fetch patch This patch series adds support for FEAT_CMH, this includes two patches. The first alters the previous atomic_store from PCDPHINT to change the hint parameter, this allows for the new hints to be added from CMH. The second adds a new set of atomic_fetch intrinsics, which can be used with the new SHUH hint. ======================================================================== [1/2] Add support for FEAT_CMH atomic store intrinsics gcc/ChangeLog: * config/aarch64/aarch64-builtins.cc (enum aarch64_builtins): Change Function/Builtin names. (aarch64_init_pcdphint_builtins): Likewise. (aarch64_init_atomic_hints_builtins): Likewise. (aarch64_general_init_builtins): Likewise. (aarch64_expand_stshh_builtin): Likewise. (aarch64_expand_atomic_hints_builtins): Likewise. (aarch64_general_expand_builtin): Likewise. (aarch64_resolve_overloaded_builtin_stshh): Likewise. (aarch64_resolve_overloaded_builtin_atomic_hint_store): Likewise (aarch64_resolve_overloaded_builtin_general): Likewise. * config/aarch64/arm_acle.h (__atomic_store_with_stshh): Likewise. (__arm_atomic_store_with_hint): Likewise. * config/aarch64/atomics.md (@aarch64_atomic_store_stshh<mode>): Add new hints to pattern (@aarch64_atomic_hints_store<mode>): Likewise. * config/aarch64/iterators.md: Add Unspec for new hints. gcc/testsuite/ChangeLog: * g++.target/aarch64/atomic_store_with_stshh.C: Change Function name. * gcc.target/aarch64/atomic_store_with_stshh.c: Likewise. * gcc.target/aarch64/atomic_store_with_shuh.c: New test. * gcc.target/aarch64/atomic_store_with_stcph.c: New test. ======================================================================== [2/2] aarch64: Add support for FEAT_CMH atomic_fetch intrinsics gcc/ChangeLog: * config/aarch64/aarch64-builtins.cc (enum aarch64_builtins): Add new builtins. (aarch64_init_atomic_hints_builtins): Likewise. (aarch64_expand_atomic_hints_builtins_fetch): Handle Fetch intrinsics. (aarch64_general_expand_builtin): Add call for new builtins. (aarch64_resolve_overloaded_builtin_atomic_hint_fetch): Handle Fetch intrinsics. (aarch64_resolve_overloaded_builtin_general): Add new call. * config/aarch64/arm_acle.h (enum atomic_fetch): Store different Fetch types. (__arm_atomic_fetch_add_with_hint): Add new builtin. (__arm_atomic_fetch_sub_with_hint): Likewise. (__arm_atomic_fetch_and_with_hint): Likewise. (__arm_atomic_fetch_xor_with_hint): Likewise. (__arm_atomic_fetch_or_with_hint): Likewise. * config/aarch64/atomics.md (aarch64_atomic_fetch_<atomic_ldoptab><mode>_atomic_hint): New pattern for atomic_fetch. (@aarch64_atomic_hints_fetch<mode>): Likewise. * config/aarch64/iterators.md: New unspecs. gcc/testsuite/ChangeLog: * gcc.target/aarch64/atomic_fetch_add_with_shuh.c: New test. * gcc.target/aarch64/atomic_fetch_and_with_shuh.c: New test. * gcc.target/aarch64/atomic_fetch_or_with_shuh.c: New test. * gcc.target/aarch64/atomic_fetch_sub_with_shuh.c: New test. * gcc.target/aarch64/atomic_fetch_xor_with_shuh.c: New test. ======================================================================== Richard Ball (2): aarch64: Add support for FEAT_CMH atomic store intrinsics aarch64: Add support for FEAT_CMH atomic_fetch intrinsics gcc/config/aarch64/aarch64-builtins.cc | 349 ++++++++++++++---- gcc/config/aarch64/arm_acle.h | 45 ++- gcc/config/aarch64/atomics.md | 105 +++++- gcc/config/aarch64/iterators.md | 4 +- .../aarch64/atomic_store_with_stshh.C | 22 +- .../aarch64/atomic_fetch_add_with_shuh.c | 151 ++++++++ .../aarch64/atomic_fetch_and_with_shuh.c | 150 ++++++++ .../aarch64/atomic_fetch_or_with_shuh.c | 150 ++++++++ .../aarch64/atomic_fetch_sub_with_shuh.c | 162 ++++++++ .../aarch64/atomic_fetch_xor_with_shuh.c | 150 ++++++++ .../aarch64/atomic_store_with_shuh.c | 186 ++++++++++ .../aarch64/atomic_store_with_stcph.c | 186 ++++++++++ .../aarch64/atomic_store_with_stshh.c | 22 +- 13 files changed, 1587 insertions(+), 95 deletions(-) create mode 100644 gcc/testsuite/gcc.target/aarch64/atomic_fetch_add_with_shuh.c create mode 100644 gcc/testsuite/gcc.target/aarch64/atomic_fetch_and_with_shuh.c create mode 100644 gcc/testsuite/gcc.target/aarch64/atomic_fetch_or_with_shuh.c create mode 100644 gcc/testsuite/gcc.target/aarch64/atomic_fetch_sub_with_shuh.c create mode 100644 gcc/testsuite/gcc.target/aarch64/atomic_fetch_xor_with_shuh.c create mode 100644 gcc/testsuite/gcc.target/aarch64/atomic_store_with_shuh.c create mode 100644 gcc/testsuite/gcc.target/aarch64/atomic_store_with_stcph.c -- 2.34.1
