On 26/05/17 12:51, Alexander Monakov wrote: > 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. Thankyou *very* much, Alex. I understand.