Run MP+nondep+dmb in model, using armmem
ARM MP+nondep+dmb () Prefetch=1:x=T { P0:R1=y; P0:R2=1; P0:R5=x; P1:R5=x; P0:R6=0; P1:R6=y; x = z; y = 0; z=0 ; (* z is address 0, for nicer output in litmus *) } P0 | P1 ; | ; str R1,R5 | ldr R3,R6 ; ldr R6,R5 | dmb ; str R2,R6 | ldr R4,R5 ; exists (P1:R3 = 1 /\ P1:R4=z /\ P0:R6=y);