Does `xchg` encompass `mfence` assuming no non-temporal instructions? Does `xchg` encompass `mfence` assuming no non-temporal instructions? multithreading multithreading

Does `xchg` encompass `mfence` assuming no non-temporal instructions?