However, the guarantees made by atomic operations are never written down in the Go specification and any other official Go documentation. If you want to write cross-compiler and cross-compiler-version compatible Go code, the safe advice is, don't rely on atomic to guarantee memory orderings in general Go programming.