RISCV_RELEASE_BARRIER
__asm__ __volatile__(RISCV_RELEASE_BARRIER "" ::: "memory");
_arch_xchg(ptr, x, "", "", RISCV_RELEASE_BARRIER, "", "")
SC_PREPEND(RISCV_RELEASE_BARRIER), SC_APPEND(""), \
CAS_PREPEND(RISCV_RELEASE_BARRIER), CAS_APPEND(""))