excl: .LBB0_1: ldxr x10, [x21] ; add x10, x10, #1 ; stxr w11, x10, [x21] ; cbnz w11, .LBB0_1 lse: ldadd x9, x10, [x21] casal x19, x8, [x21] outline: bl __aarch64_ldadd8_relax bl __aarch64_cas8_acq_rel Read it: the v8.0 loop retries until the exclusive store succeeds (w11 == 0). LSE does it in one instruction that the cache system performs atomically (like x86's lock prefix). Outline atomics call a small function (in compiler-rt or libgcc) that checks HWCAP once at startup and then runs the LSE or the exclusive version: portable binaries that still get LSE where it exists, at the cost of a call. This is the default for aarch64 Linux in GCC and clang, which is why the helpers must be linkable.