Test MP+tlbi-sync.ishsptevapteoa.va+posWppteva-tlbi-sync.ishsWptevapteoa.va-pospteoa.vap

AArch64 MP+tlbi-sync.ishsptevapteoa.va+posWppteva-tlbi-sync.ishsWptevapteoa.va-pospteoa.vap
"TLBI-sync.ISHsWWPteVAPteOA.VA RfePteOA.VAP PosRWPPteVA TLBI-sync.ISHsWWPteVAPteOA.VA PosWRPteOA.VAP FrePPteVA"
Variant=imprecise
Cycle=FrePPteVA TLBI-sync.ISHsWWPteVAPteOA.VA RfePteOA.VAP PosRWPPteVA TLBI-sync.ISHsWWPteVAPteOA.VA PosWRPteOA.VAP
Relax=[PteVA,TLBI-sync.ISHsWW,PteOA,PteVA]
Safe=Rfe Fre PosWR PosRW
Generator=diy7 (version 7.56+02~dev)
Com=Rf Fr
Orig=TLBI-sync.ISHsWWPteVAPteOA.VA RfePteOA.VAP PosRWPPteVA TLBI-sync.ISHsWWPteVAPteOA.VA PosWRPteOA.VAP FrePPteVA
{
pteval_t 0:X5;
 int x=0; int y=4;
0:X0=PTE(x); 0:X1=(oa:PA(x), valid:0); 0:X2=(oa:PA(y)); 0:X3=x;
1:X0=x; 1:X2=PTE(x); 1:X3=(oa:PA(y), valid:0); 1:X4=(oa:PA(y));
}
 P0              | P1              ;
 STR X1,[X0]     | LDR W1,[X0]     ;
 LSR X4,X3,#12   | STR X3,[X2]     ;
 DSB ISH         | LSR X6,X0,#12   ;
 TLBI VAAE1IS,X4 | DSB ISH         ;
 DSB ISH         | TLBI VAAE1IS,X6 ;
 STR X2,[X0]     | DSB ISH         ;
 LDR X5,[X0]     | STR X4,[X2]     ;
                 | LDR W5,[X0]     ;
exists (0:X5=(oa:PA(y), valid:0) /\ 1:X1=0 /\ 1:X5=4 /\ ~fault(P1,x)) \/ (0:X5=(oa:PA(y), valid:0) /\ 1:X1=0 /\ 1:X5=4 /\ fault(P1,x))