C ISA2+pooncerelease+poacquirerelease+poacquireonce

(*
 * Result: Never
 *
 * This litmus test demonstrates that a release-acquire chain suffices
 * to order P0()'s initial write against P2()'s final read.  The reason
 * that the release-acquire chain suffices is because in all but one
 * case (P2() to P0()), each process reads from the preceding process's
 * write.  In memory-model-speak, there is only one non-reads-from
 * (AKA non-rf) link, so release-acquire is all that is needed.
 *)

{}

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 r0;
	int r1;

	r0 = smp_load_acquire(z);
	r1 = READ_ONCE(*x);
}

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