http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55177
--- Comment #9 from David Woodhouse <dwmw2 at infradead dot org> 2013-03-08 12:11:24 UTC --- This is now enabled in the Linux kernel. Core patch: http://git.kernel.org/linus/cf66bb93 (in v3.8 but does nothing there) x86: http://git.kernel.org/linus/83a57a4d (will be in v3.9) PowerPC: http://git.kernel.org/linus/fe3955cb (will be in v3.9) There's an ARM patch which looks like it missed the boat for 3.9 but should hopefully be in v3.10: https://lkml.org/lkml/2013/2/22/475 On ARM where we have no load-and-swap or store-and-swap primitives we are already seeing a tiny win. But fixing up more of the missing optimisations would be good.