>>> Example 1: >>> >>> // thread T1 >>> x = 1; // a >>> y = 2; // b >>> r1 = y; // c The interesting question here for me is whether b -> c under the C++MM because both operate on the same location y. Don't IA64 (ld.acq/st.rel), x86 PO and TSO promise order in this case?