C Z6.0+pooncerelease+poacquirerelease+fencembonceonce

(*
 * Result: Sometimes
 *
 * This litmus test shows that a release-acquire chain, while sufficient
 * when there is but one non-reads-from (AKA non-rf) link, does not suffice
 * if there is more than one.  Of the three processes, only P1() reads from
 * P0's write, which means that there are two non-rf links: P1() to P2()
 * is a write-to-write link (AKA a "coherence" or just "co" link) and P2()
 * to P0() is a read-to-write link (AKA a "from-reads" or just "fr" link).
 * When there are two or more non-rf links, you typically will need one
 * full barrier for each non-rf link.  (Exceptions include some cases
 * involving locking.)
 *)

{}

P0(int *x, int *y)
{
	WRITE_ONCE(*x, 1);
	smp_store_release(y, 1);
}

P1(int *y, int *z)
{
	int r0;

	r0 = smp_load_acquire(y);
	smp_store_release(z, 1);
}

P2(int *x, int *z)
{
	int r1;

	WRITE_ONCE(*z, 2);
	smp_mb();
	r1 = READ_ONCE(*x);
}

exists (1:r0=1 /\ z=2 /\ 2:r1=0)
