cat <<EOFstatic __always_inline voidarch_${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
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