RISCV ISA11+BIS
(* ISA11 without amo's *)
{
uint64_t x;
uint64_t y;
0:s0=x; 0:s1=y;
1:s0=x; 1:s1=y;
}
P0 | P1 ;
li t1,2 | li t3,2 ;
li t2,1 | li t4,1 ;
sd t1,0(s0) | sd t3,0(s1) ;
lr.d.aq a0,0(s0) | amoswap.d.rl x0,t4,(s0) ;
or t3,t2,a0 | ;
sc.d t4,t3,0(s0) | ;
sd t2,0(s1) | ;
filter 0:t4=0
exists 0:a0=2 /\ x=3 /\ y=2