RISCV ISA10 (* ISA V2.3 fig. 1.10, RSW *) { int x; int y; int z; 0:s0=x; 0:s1=y; 1:s0=x; 1:s1=y; 1:s2=z; } P0 | P1 ; li t1,1 | lw a0,0(s1) ; sw t1,0(s0) | xor t2,a0,a0 ; fence w,w | add s3,s2,t2 ; sw t1,0(s1) | lw a1,0(s3) ; | lw a2,0(s2) ; | xor t3,a2,a2 ; | add s0,s0,t3 ; | lw a3,0(s0) ; exists (1:a0=1 /\ 1:a3 = 0)