https://gcc.gnu.org/onlinedocs/gcc/_...-Builtins.html
>> __ATOMIC_ACQUIRE - Creates an inter-thread happens-before constraint from the release (or stronger) semantic store to this acquire load. Can prevent hoisting of code to before the operation.
In other words, it prevents loads/stores from moving before the Acquire.

Acquire and Release Semantics

gg