AArch64 MP { lock = 0; 0:x0 = lock; 1:x0 = lock; } P0 | P1 ; MOV X4, #1 | MOV X4, #2; | MOV X5, #0; LDADDA X4, X5, [X0] | CASA X5, X4, [X0]; LDR X5, [X0] | LDR X5, [X0]; exists (0:X5 = 0 /\ 1:X5 = 2)