Even with sequential consistency, interweaving multiple threads produces results that go firmly into the garbage category. Even something as simple as adding to a variable can fail.
To solve interweaving, add mutexes. And once you have mutexes you'll be protected from weak memory models.
To solve interweaving, add mutexes. And once you have mutexes you'll be protected from weak memory models.