C IRIW+fencembonceonces+OnceOnce

(*
 * Result: Never
 *
 * Test of independent reads from independent writes with smp_mb()
 * between each pairs of reads.  In other words, is smp_mb() sufficient to
 * cause two different reading processes to agree on the order of a pair
 * of writes, where each write is to a different variable by a different
 * process?  This litmus test exercises LKMM's "propagation" rule.
 *)

{}

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

P1(int *x, int *y)
{
	int r0;
	int r1;

	r0 = READ_ONCE(*x);
	smp_mb();
	r1 = READ_ONCE(*y);
}

P2(int *y)
{
	WRITE_ONCE(*y, 1);
}

P3(int *x, int *y)
{
	int r0;
	int r1;

	r0 = READ_ONCE(*y);
	smp_mb();
	r1 = READ_ONCE(*x);
}

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