LISA IRWIW+ctrlonceonce+poacquirerelease+OnceRelease
"RfeOnceOnce DpCtrldWOnceOnce WseOnceRelease RfeReleaseAcquire PodRWAcquireRelease WseReleaseOnce"
Cycle=PodRWAcquireRelease WseReleaseOnce RfeOnceOnce DpCtrldWOnceOnce WseOnceRelease RfeReleaseAcquire
Relax=WseOnceRelease RfeReleaseAcquire WseReleaseOnce
Safe=PodRWAcquireRelease RfeOnceOnce DpCtrldWOnceOnce
Prefetch=1:x=F,1:y=W,3:y=F,3:x=W
Com=Rf Ws Rf Ws
Orig=RfeOnceOnce DpCtrldWOnceOnce WseOnceRelease RfeReleaseAcquire PodRWAcquireRelease WseReleaseOnce
{
}
P0 | P1 | P2 | P3 ;
w[once] x 2 | r[once] r0 x | w[release] y 2 | r[acquire] r0 y ;
| mov r1 (eq r0 0) | | w[release] x 1 ;
| b[] r1 LC00 | | ;
| LC00: | | ;
| w[once] y 1 | | ;
Observed
y=2; x=2; 3:r0=2; 1:r0=2;
and y=2; x=2; 3:r0=1; 1:r0=2;
and y=1; x=2; 3:r0=1; 1:r0=2;