| Value | Meaning |
|---|---|
| LLVMAtomicOrderingNotAtomic0 | < A load or store which is not atomic |
| LLVMAtomicOrderingUnordered1 | < Lowest level of atomicity, guarantees somewhat sane results, lock free. |
| LLVMAtomicOrderingMonotonic2 | < guarantees that if you take all the operations affecting a specific address, a consistent ordering exists |
| LLVMAtomicOrderingAcquire4 | < Acquire provides a barrier of the sort necessary to acquire a lock to access other memory with normal loads and stores. |
| LLVMAtomicOrderingRelease5 | < Release is similar to Acquire, but with a barrier of the sort necessary to release a lock. |
| LLVMAtomicOrderingAcquireRelease6 | < provides both an Acquire and a Release barrier (for fences and operations which both read and write memory). |
| LLVMAtomicOrderingSequentiallyConsistent7 | < provides Acquire semantics for loads and Release semantics for stores. Additionally, it guarantees that a total ordering exists between all SequentiallyConsistent operations. |