On Fri, 26 May 2017, Toebs Douglass wrote: > I filed a bug for it; > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80878 > > And although the reply is hardly canonical, it does for what it's worth > seem to indicate that the switch has gone away. No; what changed in gcc-7 is how __atomic builtins that would previously use cmpxchg16 are expanded: now they always yield a library call, but libatomic tries to implement those calls efficiently via cmpxchg16, provided that the CPU is capable of it, and the code generation target supports ifunc dispatch. Note that the behavior with regards to __sync builtins (as opposed to __atomic) remains unchanged, so uses of __sync_val_compare_and_swap can emit cmpxchg16 if -mcx16 is given on the command line. Alexander