cat <<EOF
static __always_inline void
arch_${atomic}_set_release(${atomic}_t *v, ${int} i)
{
	if (__native_word(${atomic}_t)) {
		smp_store_release(&(v)->counter, i);
	} else {
		__atomic_release_fence();
		arch_${atomic}_set(v, i);
	}
}
EOF