cat <<EOF ${int} ret; if (__native_word(${atomic}_t)) { ret = smp_load_acquire(&(v)->counter); } else { ret = raw_${atomic}_read(v); __atomic_acquire_fence(); } return ret; EOF