https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108891
--- Comment #1 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Wilco Dijkstra <wi...@gcc.gnu.org>: https://gcc.gnu.org/g:1f641d6aba284e0c277e6684cd6b2c73591cd14d commit r13-6855-g1f641d6aba284e0c277e6684cd6b2c73591cd14d Author: Wilco Dijkstra <wilco.dijks...@arm.com> Date: Fri Feb 10 17:41:05 2023 +0000 libatomic: Fix SEQ_CST 128-bit atomic load [PR108891] The LSE2 ifunc for 16-byte atomic load requires a barrier before the LDP - without it, it effectively has Load-AcquirePC semantics similar to LDAPR, which is less restrictive than what __ATOMIC_SEQ_CST requires. This patch fixes this and adds comments to make it easier to see which sequence is used for each case. Use a load/store exclusive loop for store to simplify testing memory ordering is correct (it is slightly faster too). libatomic/ PR libgcc/108891 * config/linux/aarch64/atomic_16.S: Fix libat_load_16_i1. Add comments describing the memory order.