https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80878
--- Comment #41 from LIU Hao <lh_mouse at 126 dot com> --- There should have been an option, long ago since GCC 7, which may be called -mcx16-just-emit-the-god-damn-cmpxchg16b-for-me-if-it-does-not-work-its-not-your-fault `__sync_*` are not an option as 1) they do not pass the old value and the zero flag in a single operation, and 2) they do not accept 16-byte structs, and 3) they are not full barriers.