http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51766
--- Comment #14 from David Edelsohn <dje at gcc dot gnu.org> 2012-01-10 20:25:57 UTC --- Jakub, The POWER implementation of __sync_* was not written intentionally to violate the documentation. I don't think those of us who implemented the feature on POWER realized the documentation was trying to require sequential consistency. Given this clarification, the POWER maintainers need to figure out what implementation is appropriate. The lwsync implementation was more than sufficient for the common use of atomic ops, like fetch_and_<op>. That other architectures provide stronger semantics is a bonus.