Closed
Description
Neither golang.org/ref/mem nor golang.org/pkg/sync/atomic say anything about what guarantees are made by the atomic operations wrt the memory model. They should be as weak as possible, of course, but right now they are non-existence, which is a little too weak. We might say, for example, that an atomic.Store writing a value to a memory location happens before an atomic.Load that reads that value from the memory location. Is that something we want to say? If not, what do we want to say? What about Add? What about CompareAndSwap?