http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51766
--- Comment #11 from David Edelsohn <dje at gcc dot gnu.org> 2012-01-10 18:33:56 UTC --- Jonathan, I understand that the new __atomic_* builtins provide that flexibility. I also am pointing out that GCC followed Intel semantics and Intel chose semantics to benefit them. Why should GCC prefer and impose semantics that advantage a particular architecture or vendor? You can argue that the __sync_* definition is the playing field and the rule and POWER has to deal with it. And I am responding that the builtins were implemented appropriate for POWER and now GCC has moved the goal post.