Atomic instructions ( cmpxchg , atomicrmw , fence , atomic load , and atomic store ) take ordering parameters that determine which other atomic instructions on the same address they synchronize with . These semantics are borrowed from Java and C++0x, but are somewhat more colloquial. If these descriptions aren’t precise enough, check those specs (see spec references in the atomics guide ). fence instructions treat these orderings somewhat differently since they don’t take an address. See that instruction’s documentation for details.