1C S+fencewmbonceonce+poacquireonce 2 3(* 4 * Result: Never 5 * 6 * Can a smp_wmb(), instead of a release, and an acquire order a prior 7 * store against a subsequent store? 8 *) 9 10{ 11 int x; 12 int y; 13} 14 15P0(int *x, int *y) 16{ 17 WRITE_ONCE(*x, 2); 18 smp_wmb(); 19 WRITE_ONCE(*y, 1); 20} 21 22P1(int *x, int *y) 23{ 24 int r0; 25 26 r0 = smp_load_acquire(y); 27 WRITE_ONCE(*x, 1); 28} 29 30exists (x=2 /\ 1:r0=1) 31