https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103069
--- Comment #14 from Thiago Macieira <thiago at kde dot org> --- I'd restrict relaxations to loops emitted by the compiler. All other atomic operations shouldn't be modified at all, unless the user asks for it. That includes non-looping atomic operations (like LOCK BTC, LOCK XADD) as well as a pure LOCK CMPXCHG that came from a single __atomic_compare_exchange by the user. I'd welcome the ability to relax the latter, especially if with one codebase I could be efficient in CAS architectures as well as LL/SC ones.