GCC Newspaper
OCTOBER 6, 2026
Date
/
Architectures
Components
Topics
News & Policy
Other
libatomic Performance Win

libatomic: Use HWCAPs in AArch64 ifunc tests

Simplifies AArch64 atomic operation selection by using HWCAPs instead of low-level checks.

The libatomic library on AArch64 now uses hardware capability (HWCAP) flags to select the most efficient atomic operations (ifuncs). This replaces older, more complex checks like has_lse128() and has_rcpc3(), simplifying the code and speeding up runtime selection by avoiding expensive system register accesses.

In Details

In libatomic for AArch64, the ifunc selection for atomic operations now relies solely on HWCAPs, removing the need for explicit checks like has_lse128() and has_rcpc3(). This approach, favored by the kernel team, simplifies the host-config.h logic and optimizes the runtime dispatch mechanism by avoiding direct system register polling.

For Context
libatomic
A library that provides atomic built-in functions for C, C++, and Fortran, ensuring thread-safe operations on shared data.
AArch64
The 64-bit ARM architecture. GCC supports compiling for this popular mobile and server platform.
ifunc
Indirect function binding. A mechanism that allows the runtime to select the most appropriate function implementation based on the CPU's capabilities at load time.
HWCAPs
Hardware capabilities. Flags exposed by the kernel that indicate features supported by the CPU, used to dynamically select optimized code paths.
LSE
Large System Extension. An extension to the ARM architecture that provides enhanced atomic instruction support.
RCPC3
Likely refers to a specific ARM instruction set or feature related to atomic operations or memory ordering, possibly Release Consistent Post-cache Coherency.
Filed Under: libatomicaarch64optimizationruntime