AArch64 S+poxxs "PodWWXX RfeXX PodRWXX WseXX" Cycle=RfeXX PodRWXX WseXX PodWWXX Relax= Safe=PodWW PodRW RfeXX WseXX Prefetch=0:x=F,0:y=W,1:y=F,1:x=W Com=Rf Ws Orig=PodWWXX RfeXX PodRWXX WseXX { ok=1; 0:X0=x; 0:X4=y; 0:X8=ok; 1:X0=y; 1:X3=x; 1:X7=ok; } P0 | P1 ; MOV W1,#2 | LDXR W1,[X0] ; LDXR W2,[X0] | STXR W2,W1,[X0] ; STXR W3,W1,[X0] | CBNZ W2,Fail1 ; CBNZ W3,Fail0 | MOV W4,#1 ; MOV W5,#1 | LDXR W5,[X3] ; LDXR W6,[X4] | STXR W2,W4,[X3] ; STXR W3,W5,[X4] | CBNZ W2,Fail1 ; CBNZ W3,Fail0 | B Exit1 ; B Exit0 | Fail1: ; Fail0: | MOV W6,#0 ; MOV W7,#0 | STR W6,[X7] ; STR W7,[X8] | Exit1: ; Exit0: | ; Observed y=1; x=2; ok=1; 1:X5=0; 1:X1=1; 0:X6=0; 0:X2=1;