AArch64 MP-swp { 0:X1=x; 0:X3=y; 1:X1=x; 1:X3=y; 1:X5=z; } P0 | P1 ; MOV W0,#1 | LDR W0,[X3] ; STR W0,[X1] | SWP W0,W2,[X5] ; MOV W2,#1 | AND W4,W2,#2 ; STLR W2,[X3] | LDR W6,[X1,W4,SXTW] ; Observed 1:X6=0; 1:X0=1;