Libgomp test libgomp.c/atomic-3.c started failing with wrong answers on power5 and power6 systems for -m32, and tests nqueens-1.c and sort-1.c started hanging intermittently for both -m32 and -m64 on those systems, with the addition of r139969, which removes the memory barrier from rs6000_split_lock_test_and_set. Adding back the memory barrier allows those tests to pass again.
David Edelsohn told me that sync_lock_test_and_set does not require the stricter semantics of a memory barrier and if libgomp needs the memory barrier then it must emit one itself. The patch submission for r139969, http://gcc.gnu.org/ml/gcc/2008-09/msg00038.html, has followups from David and from Richard Henderson briefly discussing the semantics of sync_lock_test_and_set. -- Summary: libgomp test failures due to missing memory barrier Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libgomp AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: janis at gcc dot gnu dot org GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38270