C C-LB+acq-o+acq-o+acq-o.litmus { } P0(int *a, int *b) { int *r1; r1 = smp_load_acquire(a); WRITE_ONCE(*b, 1); } P1(int *b, int *c) { int r1; r1 = smp_load_acquire(b); WRITE_ONCE(*c, 1); } P2(int *a, int *c) { int r1; r1 = smp_load_acquire(c); WRITE_ONCE(*a, 1); } exists (0:r1=1 /\ 1:r1=1 /\ 2:r1=1)