1*1c27b644SPaul E. McKenneyC ISA2+pooncerelease+poacquirerelease+poacquireonce
2*1c27b644SPaul E. McKenney
3*1c27b644SPaul E. McKenney{}
4*1c27b644SPaul E. McKenney
5*1c27b644SPaul E. McKenneyP0(int *x, int *y)
6*1c27b644SPaul E. McKenney{
7*1c27b644SPaul E. McKenney	WRITE_ONCE(*x, 1);
8*1c27b644SPaul E. McKenney	smp_store_release(y, 1);
9*1c27b644SPaul E. McKenney}
10*1c27b644SPaul E. McKenney
11*1c27b644SPaul E. McKenneyP1(int *y, int *z)
12*1c27b644SPaul E. McKenney{
13*1c27b644SPaul E. McKenney	int r0;
14*1c27b644SPaul E. McKenney
15*1c27b644SPaul E. McKenney	r0 = smp_load_acquire(y);
16*1c27b644SPaul E. McKenney	smp_store_release(z, 1);
17*1c27b644SPaul E. McKenney}
18*1c27b644SPaul E. McKenney
19*1c27b644SPaul E. McKenneyP2(int *x, int *z)
20*1c27b644SPaul E. McKenney{
21*1c27b644SPaul E. McKenney	int r0;
22*1c27b644SPaul E. McKenney	int r1;
23*1c27b644SPaul E. McKenney
24*1c27b644SPaul E. McKenney	r0 = smp_load_acquire(z);
25*1c27b644SPaul E. McKenney	r1 = READ_ONCE(*x);
26*1c27b644SPaul E. McKenney}
27*1c27b644SPaul E. McKenney
28*1c27b644SPaul E. McKenneyexists (1:r0=1 /\ 2:r0=1 /\ 2:r1=0)
29