Tue Jan 4 22:09:32 CET 2011 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X000.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X000 "Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 ; MOV [y],$1 | MOV [x],$1 ; MOV EAX,[y] | MOV EAX,[x] ; MOV EBX,[x] | MOV EBX,[y] ; forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rdi) _litmus_P0_1_: movl (%rdi),%eax _litmus_P0_2_: movl (%r8),%edx Test X000 Required Histogram (4 states) 147577:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 9892069:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 9899249:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 61105 :>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; No Witnesses Positive: 19852423, Negative: 147577 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) is NOT validated Hash=18becfacdee74261273186c0b251c811 Time X000 6.06 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X001.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X001 "Fre Rfi PodRR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$1 | MOV [y],$1 ; MOV EAX,[z] | MOV EAX,[x] | MOV EAX,[y] ; MOV EBX,[x] | MOV EBX,[y] | MOV EBX,[z] ; forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rdi) _litmus_P0_1_: movl (%rdi),%eax _litmus_P0_2_: movl (%r8),%edx _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: movl (%rdi),%edx Test X001 Required Histogram (8 states) 6018 :>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 1541974:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 1561712:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 1758739:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 1574764:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 1787456:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 1757459:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 11878 :>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 9993982, Negative: 6018 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is NOT validated Hash=2842aab5ffb144fee6d95d0b766c03eb Time X001 6.51 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X002.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X002 "Fre PodWW Rfi PodRR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [y],$1 | MOV [z],$1 ; MOV [x],$1 | MOV EAX,[y] | MOV EAX,[z] ; MOV EAX,[x] | MOV EBX,[z] | MOV EBX,[a] ; MOV EBX,[y] | | ; forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%rdi) _litmus_P2_1_: movl (%rdi),%eax _litmus_P2_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%r9) _litmus_P0_1_: movl $1,(%r8) _litmus_P0_2_: movl (%r8),%eax _litmus_P0_3_: movl (%rdi),%edx _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: movl (%rdi),%edx Test X002 Required Histogram (8 states) 3902 :>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 1652749:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 1434083:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 1875247:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 1475554:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 1688185:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 1854889:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 15391 :>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 9996098, Negative: 3902 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is NOT validated Hash=35008cacf92fceea74a530f0facd2e5c Time X002 7.17 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X003.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X003 "Fre PodWR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$1 | MOV [y],$1 ; MOV EAX,[x] | MOV EAX,[x] | MOV EAX,[y] ; | MOV EBX,[y] | MOV EBX,[z] ; forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rcx) _litmus_P0_1_: movl (%rsi),%eax _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: movl (%rdi),%edx Test X003 Required Histogram (8 states) 6442 :>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 1570183:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 1585188:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 1742202:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 1491694:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 1740728:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 1853861:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 9702 :>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 9993558, Negative: 6442 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is NOT validated Hash=71763f06cea77da0cec7d25d956a5c28 Time X003 6.47 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X004.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X004 "Fre PodWR Fre PodWR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[y] | MOV EAX,[z] ; | | MOV EBX,[z] | MOV EBX,[a] ; forall (2:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: movl (%rdi),%edx Test X004 Required Histogram (16 states) 1628 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 395065:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 423352:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 772107:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 402073:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 1680923:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 798979:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 482026:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 407672:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 743568:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 1688830:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 435133:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 807849:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 494516:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 463717:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 2562 :>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; No Witnesses Positive: 9998372, Negative: 1628 Condition forall (2:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) is NOT validated Hash=d8cc1edcbc8a79c3c3d3383961d0bbe7 Time X004 8.90 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X005.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X005 "Fre PodWW Wse PodWR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$1 ; MOV [x],$1 | MOV EAX,[y] | MOV EAX,[y] | MOV EAX,[z] ; | | MOV EBX,[z] | MOV EBX,[a] ; forall (2:EAX=1 /\ 3:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: movl (%rdi),%edx Test X005 Required Histogram (16 states) 386432:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 806224:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 1567542:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 562913:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 878792:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 646345:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 532399:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 4162 :>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 478 :>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; 280807:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; 366330:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 713595:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 400472:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 1532573:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 830536:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; 490400:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; No Witnesses Positive: 9999522, Negative: 478 Condition forall (2:EAX=1 /\ 3:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is NOT validated Hash=5a7cdcb4720fe95bb93a26d055a607e7 Time X005 9.06 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X006.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X006 "Fre PodWW Wse Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$2 | MOV [y],$1 ; MOV [x],$1 | MOV EAX,[x] | MOV EAX,[y] ; | MOV EBX,[y] | MOV EBX,[z] ; forall (2:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: movl (%rdi),%edx Test X006 Required Histogram (11 states) 1583429:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 4535 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 2014409:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 622 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 1787631:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 1672 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 12759 :>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 1793 :>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=2; 1291721:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 1538332:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 1763097:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; No Witnesses Positive: 9998207, Negative: 1793 Condition forall (2:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is NOT validated Hash=83845f1811d87a7cda909f8fa5423fc9 Time X006 6.60 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X007.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X007 "Fre PodWR Fre PodWW Wse Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$2 | MOV [z],$1 ; MOV EAX,[x] | MOV [y],$1 | MOV EAX,[y] | MOV EAX,[z] ; | | MOV EBX,[z] | MOV EBX,[a] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: movl (%rdi),%edx Test X007 Required Histogram (23 states) 295 :>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 347440:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 803973:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 2225 :>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 5299 :>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 788152:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 593637:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 529 :>0:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 1043 :>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 1776767:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 508547:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 6250 :>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 761 :>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 542568:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 3347 :>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 480 :>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=2; 402152:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=2; 291750:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 1681346:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 342652:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 770631:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 669466:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; 460690:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; No Witnesses Positive: 9999520, Negative: 480 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) is NOT validated Hash=491e46b8c3d1b0e53244abfcb6fee024 Time X007 9.21 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X008.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X008 "Fre PodWW Wse PodWW Wse Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$1 ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[y] | MOV EAX,[z] ; | | MOV EBX,[z] | MOV EBX,[a] ; forall (3:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: movl (%rdi),%edx Test X008 Required Histogram (23 states) 179 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 861238:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 5187 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 705054:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 953 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 613413:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 951 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 5201 :>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 272151:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 2660 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 731877:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 525 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 1647044:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 5579 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 579178:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 360767:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 1608855:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 848074:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 492414:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 58 :>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; y=2; 234115:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 324423:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 700104:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; No Witnesses Positive: 9999942, Negative: 58 Condition forall (3:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is NOT validated Hash=851c14be0115aea267602b7b9897e4ab Time X008 9.35 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X009.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X009 "Fre PodWW Rfi PodRR Fre Rfi PodRR" {} P0 | P1 ; MOV [z],$1 | MOV [y],$1 ; MOV [x],$1 | MOV EAX,[y] ; MOV EAX,[x] | MOV EBX,[z] ; MOV EBX,[y] | ; forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rdi) _litmus_P0_1_: movl $1,(%r9) _litmus_P0_2_: movl (%r9),%eax _litmus_P0_3_: movl (%r8),%edx Test X009 Required Histogram (4 states) 90140 :>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 9811865:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 10054102:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 43893 :>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; No Witnesses Positive: 19909860, Negative: 90140 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) is NOT validated Hash=952cda8d883d48fdd2e1f54e9e826465 Time X009 6.97 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X010.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X010 "Fre PodWR Fre PodWW Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [x],$1 | MOV [z],$1 ; MOV EAX,[x] | MOV [y],$1 | MOV EAX,[z] ; | MOV EAX,[y] | MOV EBX,[a] ; | MOV EBX,[z] | ; forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%rdi) _litmus_P2_1_: movl (%rdi),%eax _litmus_P2_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%r9) _litmus_P1_1_: movl $1,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx Test X010 Required Histogram (8 states) 4192 :>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 1547267:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 1622255:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 1695808:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 1439962:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 1784407:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 1896238:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 9871 :>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 9995808, Negative: 4192 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is NOT validated Hash=29322ed2a379b681faef913b31a67a3f Time X010 7.18 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X011.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X011 "Fre PodWW Wse PodWW Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [x],$2 | MOV [z],$1 ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[z] ; | MOV EAX,[y] | MOV EBX,[a] ; | MOV EBX,[z] | ; forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: movl $1,(%rdi) _litmus_P2_1_: movl (%rdi),%eax _litmus_P2_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%r9) _litmus_P1_1_: movl $1,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx Test X011 Required Histogram (8 states) 1527660:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 1905174:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 1816435:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 13127 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 879 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=2; 1406427:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 1296019:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 2034279:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; No Witnesses Positive: 9999121, Negative: 879 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is NOT validated Hash=bac37d76a6747ad54286e54fde2f48c4 Time X011 7.23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X012.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X012 "Fre PodWR Fre Rfi PodRR" {} P0 | P1 ; MOV [y],$1 | MOV [x],$1 ; MOV EAX,[x] | MOV EAX,[x] ; | MOV EBX,[y] ; forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rcx) _litmus_P0_1_: movl (%rsi),%eax Test X012 Required Histogram (4 states) 150490:>0:EAX=0; 1:EAX=1; 1:EBX=0; 9896663:>0:EAX=1; 1:EAX=1; 1:EBX=0; 9893390:>0:EAX=0; 1:EAX=1; 1:EBX=1; 59457 :>0:EAX=1; 1:EAX=1; 1:EBX=1; No Witnesses Positive: 19849510, Negative: 150490 Condition forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) is NOT validated Hash=139c57a8038a1b1c23afefe27074fd66 Time X012 5.95 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X013.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X013 "Fre PodWR Fre Rfi PodRR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; MOV EAX,[x] | MOV EAX,[x] | MOV EAX,[z] | MOV EAX,[z] ; | MOV EBX,[y] | | MOV EBX,[a] ; forall (1:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: movl (%rdi),%edx _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: movl (%rcx),%eax Test X013 Required Histogram (16 states) 1651 :>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 433153:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 415078:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 836523:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 374220:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1676911:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 814235:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 507676:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 359458:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 739754:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1659960:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 449026:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 756348:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 417555:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 555397:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 3055 :>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; No Witnesses Positive: 9998349, Negative: 1651 Condition forall (1:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is NOT validated Hash=3d0e4fea749c84fad03445a08d350d22 Time X013 8.70 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X014.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X014 "Fre PodWW Wse Rfi PodRR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$1 ; MOV [x],$1 | MOV EAX,[x] | MOV EAX,[z] | MOV EAX,[z] ; | MOV EBX,[y] | | MOV EBX,[a] ; forall (3:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: movl (%rdi),%edx _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: movl (%rcx),%eax Test X014 Required Histogram (23 states) 346289:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 2405 :>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 850520:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 650 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 1784968:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 4758 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 535218:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 355 :>1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 780437:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 6440 :>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 601371:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 1922 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 534584:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 1253 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 3619 :>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 450 :>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 275273:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 340814:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 629364:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 404298:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 1633625:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 814346:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 447041:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; No Witnesses Positive: 9999550, Negative: 450 Condition forall (3:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is NOT validated Hash=f3b918ee7f21600d42d951587188960d Time X014 9.13 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X015.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X015 "Fre PodWW Rfi PodRR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [y],$1 | MOV [z],$1 ; MOV [x],$1 | MOV EAX,[z] | MOV EAX,[z] ; MOV EAX,[x] | | MOV EBX,[a] ; MOV EBX,[y] | | ; forall (0:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%rdi) _litmus_P2_1_: movl (%rdi),%eax _litmus_P2_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%r9) _litmus_P0_1_: movl $1,(%r8) _litmus_P0_2_: movl (%r8),%eax _litmus_P0_3_: movl (%rdi),%edx _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: movl (%rcx),%eax Test X015 Required Histogram (8 states) 4222 :>0:EAX=1; 0:EBX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 1553524:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 1497974:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 1808731:>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 1571296:>0:EAX=1; 0:EBX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 1783373:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 1770125:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 10755 :>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 9995778, Negative: 4222 Condition forall (0:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) is NOT validated Hash=2e6f1cb9353f50486d8de32a38a94869 Time X015 7.09 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X016.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X016 "Fre PodWR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$1 | MOV [y],$1 ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[y] ; | | MOV EBX,[z] ; forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rcx) _litmus_P0_1_: movl (%rsi),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: movl (%rcx),%eax Test X016 Required Histogram (8 states) 6172 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 1550727:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 1583086:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 1731773:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 1514175:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 1776871:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 1829610:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 7586 :>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 9993828, Negative: 6172 Condition forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) is NOT validated Hash=825ed9ade93262f61092b14ec112d617 Time X016 6.03 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X017.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X017 "Fre PodWR Fre PodWR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: movl (%rcx),%eax Test X017 Required Histogram (16 states) 1561 :>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 428228:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 407203:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 743114:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 433484:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1574970:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 785743:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 471882:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 412855:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 802401:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1700714:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 522276:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 724896:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 481391:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 507375:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1907 :>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; No Witnesses Positive: 9998439, Negative: 1561 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is NOT validated Hash=79bdd83c4f3d171abdeabe17c2039f06 Time X017 8.69 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X018.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X018 "Fre PodWW Wse PodWR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$1 ; MOV [x],$1 | MOV EAX,[y] | MOV EAX,[z] | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: movl (%rcx),%eax Test X018 Required Histogram (16 states) 406668:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 889335:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 1674782:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 591736:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 877406:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 667459:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 499218:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 2798 :>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 406 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 265137:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 330623:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 618530:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 472156:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 1489704:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 791290:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 422752:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; No Witnesses Positive: 9999594, Negative: 406 Condition forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is NOT validated Hash=51f7bd8e922ea9364b96a7219fd8a1c2 Time X018 9.03 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X019.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X019 "Fre PodWW Wse PodWR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$2 | MOV [y],$1 ; MOV [x],$1 | MOV EAX,[y] | MOV EAX,[y] ; | | MOV EBX,[z] ; forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: movl (%rcx),%eax Test X019 Required Histogram (8 states) 1537857:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 2035855:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 1837647:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 10939 :>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 1977 :>1:EAX=0; 2:EAX=1; 2:EBX=0; x=2; 1255303:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 1657801:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 1662621:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; No Witnesses Positive: 9998023, Negative: 1977 Condition forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is NOT validated Hash=d76e29f2dbd66f100e7205e8f3dc0cb7 Time X019 6.52 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X020.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X020 "Fre PodWR Fre PodWW Wse PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$2 | MOV [z],$1 ; MOV EAX,[x] | MOV [y],$1 | MOV EAX,[z] | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rsi) _litmus_P2_1_: movl (%rcx),%eax Test X020 Required Histogram (16 states) 397936:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 860171:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 794105:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 663751:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 1668943:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 478679:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 549839:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 3014 :>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 455 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 414225:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 253677:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 1620853:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 372890:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 754287:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 692646:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 474529:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; No Witnesses Positive: 9999545, Negative: 455 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) is NOT validated Hash=f1aee060ce888b50adb4157fd8cb6638 Time X020 8.86 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X021.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X021 "Fre PodWW Wse PodWW Wse PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$1 ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[z] | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rsi) _litmus_P2_1_: movl (%rcx),%eax Test X021 Required Histogram (16 states) 890464:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 721049:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 623891:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 3948 :>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 291342:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 785139:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 1572424:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 570590:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 370831:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 1485402:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 858413:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 532787:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 72 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=2; 230266:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 363463:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 699919:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; No Witnesses Positive: 9999928, Negative: 72 Condition forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) is NOT validated Hash=66e098b1f0fec6bba32d089303063277 Time X021 9.18 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X022.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X022 "Fre PodWW Wse Rfi PodRR" {} P0 | P1 ; MOV [y],$1 | MOV [x],$2 ; MOV [x],$1 | MOV EAX,[x] ; | MOV EBX,[y] ; forall (1:EAX=2 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1) \/ 1:EAX=1 /\ 1:EBX=1 /\ x=1) Generated assembler _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X022 Required Histogram (5 states) 9846383:>1:EAX=2; 1:EBX=0; x=1; 9827 :>1:EAX=1; 1:EBX=1; x=1; 210949:>1:EAX=2; 1:EBX=1; x=1; 14228 :>1:EAX=2; 1:EBX=0; x=2; 9918613:>1:EAX=2; 1:EBX=1; x=2; No Witnesses Positive: 19985772, Negative: 14228 Condition forall (1:EAX=2 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1) \/ 1:EAX=1 /\ 1:EBX=1 /\ x=1) is NOT validated Hash=7662c2cd9083b397fb8c41e7f153ffe4 Time X022 6.21 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X023.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X023 "Fre PodWW Wse Rfi PodRR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$2 ; MOV [x],$1 | MOV EAX,[x] | MOV [z],$1 | MOV EAX,[z] ; | MOV EBX,[y] | | MOV EBX,[a] ; forall (1:EAX=2 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: movl (%rdi),%edx _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X023 Required Histogram (33 states) 281 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 11 :>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 931 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 315 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 1809238:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 3876 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 590236:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 2 :>1:EAX=1; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 4197 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 22 :>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 1507 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 1240 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 601092:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 994 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 6135 :>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 111 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 285129:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 667516:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 2109 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 5424 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 813508:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 570061:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 282069:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 2007 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 793581:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 132 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 715929:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 5225 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 607949:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 75 :>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=2; z=2; 273188:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 305305:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 1650605:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; No Witnesses Positive: 9999925, Negative: 75 Condition forall (1:EAX=2 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) is NOT validated Hash=fe5b6aecb84424f9e09dfbb24d6af585 Time X023 9.63 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X024.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X024 "Fre PodWW Rfi PodRR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [y],$1 | MOV [z],$2 ; MOV [x],$1 | MOV [z],$1 | MOV EAX,[z] ; MOV EAX,[x] | | MOV EBX,[a] ; MOV EBX,[y] | | ; forall (0:EAX=1 /\ (0:EBX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ (z=2 \/ z=1)) \/ 2:EAX=1 /\ z=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ z=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ z=1))) Generated assembler _litmus_P2_0_: movl $2,(%rdi) _litmus_P2_1_: movl (%rdi),%eax _litmus_P2_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%r9) _litmus_P0_1_: movl $1,(%r8) _litmus_P0_2_: movl (%r8),%eax _litmus_P0_3_: movl (%rdi),%edx _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X024 Required Histogram (11 states) 1109 :>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=0; z=1; 1294166:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=0; z=1; 2057910:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=1; 4687 :>0:EAX=1; 0:EBX=0; 2:EAX=1; 2:EBX=1; z=1; 1453 :>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=1; z=1; 2011739:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=1; 12168 :>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=1; 795 :>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=0; z=2; 1654281:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=2; 1311383:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=2; 1650309:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=2; No Witnesses Positive: 9999205, Negative: 795 Condition forall (0:EAX=1 /\ (0:EBX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ (z=2 \/ z=1)) \/ 2:EAX=1 /\ z=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ z=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ z=1))) is NOT validated Hash=e9cd3f0c368e9acdc43f162367066e15 Time X024 7.48 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X025.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X025 "Fre PodWR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$1 | MOV [y],$2 ; MOV EAX,[x] | MOV [y],$1 | MOV EAX,[y] ; | | MOV EBX,[z] ; forall (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ y=1)) Generated assembler _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rcx) _litmus_P0_1_: movl (%rsi),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X025 Required Histogram (11 states) 683 :>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 1507433:>0:EAX=0; 2:EAX=2; 2:EBX=0; y=1; 1878328:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=1; 4538 :>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 1548 :>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 2115380:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=1; 10113 :>0:EAX=1; 2:EAX=2; 2:EBX=1; y=1; 1753 :>0:EAX=0; 2:EAX=2; 2:EBX=0; y=2; 1674309:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=2; 1205257:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=2; 1600658:>0:EAX=1; 2:EAX=2; 2:EBX=1; y=2; No Witnesses Positive: 9998247, Negative: 1753 Condition forall (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ y=1)) is NOT validated Hash=5c42f1c2d8164fe5f7cf9771e8c3f3b1 Time X025 6.53 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X026.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X026 "Fre PodWR Fre PodWR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$2 ; MOV EAX,[x] | MOV EAX,[y] | MOV [z],$1 | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (0:EAX=1 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X026 Required Histogram (23 states) 434 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 392 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 1238 :>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 369517:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 1865161:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 825791:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 432614:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 1937 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 4908 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 7048 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 855 :>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 820738:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 507813:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 641797:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 2010 :>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 441 :>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=2; 333882:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=2; 369272:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 758506:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 230992:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 638152:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 1745313:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; 441189:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; No Witnesses Positive: 9999559, Negative: 441 Condition forall (0:EAX=1 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) is NOT validated Hash=0d2c507119015359d2e0ddc90de59b7c Time X026 8.91 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X027.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X027 "Fre PodWW Wse PodWR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$2 ; MOV [x],$1 | MOV EAX,[y] | MOV [z],$1 | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X027 Required Histogram (23 states) 289 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 537 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 1787303:>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 563518:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 4876 :>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 890 :>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 583763:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 5328 :>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 87 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 299100:>1:EAX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 721005:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 2066 :>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 5297 :>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 747223:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 571583:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 296418:>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 781885:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 728368:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 583834:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 71 :>1:EAX=0; 3:EAX=2; 3:EBX=0; x=2; z=2; 264795:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 301605:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 1750159:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; No Witnesses Positive: 9999929, Negative: 71 Condition forall (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) is NOT validated Hash=5f4dca0d54edbfa9c62a00ef21f7933f Time X027 9.35 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X028.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X028 "Fre PodWW Wse PodWW Wse Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$2 | MOV [y],$2 ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[y] ; | | MOV EBX,[z] ; forall (2:EAX=2 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) Generated assembler _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X028 Required Histogram (11 states) 847 :>2:EAX=1; 2:EBX=0; x=1; y=1; 2212829:>2:EAX=2; 2:EBX=0; x=1; y=1; 2438 :>2:EAX=1; 2:EBX=1; x=1; y=1; 17963 :>2:EAX=2; 2:EBX=1; x=1; y=1; 1131969:>2:EAX=2; 2:EBX=0; x=2; y=1; 5041 :>2:EAX=1; 2:EBX=1; x=2; y=1; 1923718:>2:EAX=2; 2:EBX=1; x=2; y=1; 1535940:>2:EAX=2; 2:EBX=0; x=1; y=2; 1826904:>2:EAX=2; 2:EBX=1; x=1; y=2; 84 :>2:EAX=2; 2:EBX=0; x=2; y=2; 1342267:>2:EAX=2; 2:EBX=1; x=2; y=2; No Witnesses Positive: 9999916, Negative: 84 Condition forall (2:EAX=2 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) is NOT validated Hash=cdddfe73a879603db4998008cf43ef71 Time X028 6.77 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X029.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X029 "Fre PodWR Fre PodWW Wse PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$2 | MOV [z],$2 ; MOV EAX,[x] | MOV [y],$1 | MOV [z],$1 | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (0:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X029 Required Histogram (23 states) 299 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 1029 :>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 852885:>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=1; 593987:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=1; 5148 :>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 982 :>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 750979:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=1; 3120 :>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=1; 399 :>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 275828:>0:EAX=0; 3:EAX=2; 3:EBX=0; y=2; z=1; 1707650:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=1; 1856 :>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 6282 :>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 743794:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=1; 624387:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=1; 381367:>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=2; 772607:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=2; 1655168:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=2; 485399:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=2; 54 :>0:EAX=0; 3:EAX=2; 3:EBX=0; y=2; z=2; 280062:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=2; 223296:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=2; 633422:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=2; No Witnesses Positive: 9999946, Negative: 54 Condition forall (0:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1))) is NOT validated Hash=6cccf08ce03ab9a0169eb7d22b76e877 Time X029 9.17 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X030.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X030 "Fre PodWW Wse PodWW Wse PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$2 ; MOV [x],$1 | MOV [y],$1 | MOV [z],$1 | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X030 Required Histogram (23 states) 1328 :>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 716532:>3:EAX=2; 3:EBX=0; x=1; y=1; z=1; 1292 :>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 6777 :>3:EAX=2; 3:EBX=1; x=1; y=1; z=1; 146 :>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 732308:>3:EAX=2; 3:EBX=0; x=2; y=1; z=1; 6093 :>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 717185:>3:EAX=2; 3:EBX=1; x=2; y=1; z=1; 392 :>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 1698116:>3:EAX=2; 3:EBX=0; x=1; y=2; z=1; 4518 :>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 500428:>3:EAX=2; 3:EBX=1; x=1; y=2; z=1; 208643:>3:EAX=2; 3:EBX=0; x=2; y=2; z=1; 1878 :>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 652791:>3:EAX=2; 3:EBX=1; x=2; y=2; z=1; 858853:>3:EAX=2; 3:EBX=0; x=1; y=1; z=2; 652491:>3:EAX=2; 3:EBX=1; x=1; y=1; z=2; 246236:>3:EAX=2; 3:EBX=0; x=2; y=1; z=2; 1672026:>3:EAX=2; 3:EBX=1; x=2; y=1; z=2; 341110:>3:EAX=2; 3:EBX=0; x=1; y=2; z=2; 760889:>3:EAX=2; 3:EBX=1; x=1; y=2; z=2; 2 :>3:EAX=2; 3:EBX=0; x=2; y=2; z=2; 219966:>3:EAX=2; 3:EBX=1; x=2; y=2; z=2; No Witnesses Positive: 9999998, Negative: 2 Condition forall (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) is NOT validated Hash=02de9262b4e392ed751770e9e51f9ab2 Time X030 9.71 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X031.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X031 "Fre PodWW Rfi PodRR Fre PodWW Rfi PodRR" {} P0 | P1 ; MOV [a],$1 | MOV [y],$1 ; MOV [x],$1 | MOV [z],$1 ; MOV EAX,[x] | MOV EAX,[z] ; MOV EBX,[y] | MOV EBX,[a] ; forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl $1,(%rdi) _litmus_P1_2_: movl (%rdi),%eax _litmus_P1_3_: movl (%r9),%edx _litmus_P0_0_: movl $1,(%r9) _litmus_P0_1_: movl $1,(%r8) _litmus_P0_2_: movl (%r8),%eax _litmus_P0_3_: movl (%rdi),%edx Test X031 Required Histogram (4 states) 38581 :>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 9965964:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 9965255:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 30200 :>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; No Witnesses Positive: 19961419, Negative: 38581 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) is NOT validated Hash=df727976765f43787e2e42991a8c820b Time X031 7.83 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X032.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X032 "Fre PodWR Fre PodWW Rfi PodRR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV [b],$1 | MOV [x],$1 | MOV [z],$1 ; MOV EAX,[x] | MOV [y],$1 | MOV [a],$1 ; | MOV EAX,[y] | MOV EAX,[a] ; | MOV EBX,[z] | MOV EBX,[b] ; forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%rdi) _litmus_P2_1_: movl $1,(%r9) _litmus_P2_2_: movl (%r9),%eax _litmus_P2_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%r9) _litmus_P1_1_: movl $1,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx Test X032 Required Histogram (8 states) 2166 :>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 1448503:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 1583307:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 1750144:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 1481502:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 1870521:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 1854897:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 8960 :>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 9997834, Negative: 2166 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is NOT validated Hash=7afc7ac528ec2d8c338b9e29bd47f926 Time X032 7.81 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X033.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X033 "Fre PodWW Wse PodWW Rfi PodRR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV [b],$1 | MOV [x],$2 | MOV [z],$1 ; MOV [x],$1 | MOV [y],$1 | MOV [a],$1 ; | MOV EAX,[y] | MOV EAX,[a] ; | MOV EBX,[z] | MOV EBX,[b] ; forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: movl $1,(%rdi) _litmus_P2_1_: movl $1,(%r9) _litmus_P2_2_: movl (%r9),%eax _litmus_P2_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%r9) _litmus_P1_1_: movl $1,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx Test X033 Required Histogram (8 states) 1378270:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 1994876:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 1983697:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 15391 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 338 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=2; 1330725:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 1508707:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 1787996:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; No Witnesses Positive: 9999662, Negative: 338 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is NOT validated Hash=f3c7d71ac8aad3d20990c06f16faa429 Time X033 7.86 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X034.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X034 "Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 ; MOV [z],$1 | MOV [x],$1 ; MOV EAX,[x] | MOV [y],$1 ; | MOV EAX,[y] ; | MOV EBX,[z] ; forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: movl $1,(%r9) _litmus_P1_1_: movl $1,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rcx) _litmus_P0_1_: movl (%rsi),%eax Test X034 Required Histogram (4 states) 88757 :>0:EAX=0; 1:EAX=1; 1:EBX=0; 10027867:>0:EAX=1; 1:EAX=1; 1:EBX=0; 9821537:>0:EAX=0; 1:EAX=1; 1:EBX=1; 61839 :>0:EAX=1; 1:EAX=1; 1:EBX=1; No Witnesses Positive: 19911243, Negative: 88757 Condition forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) is NOT validated Hash=c2a315993d745028faaba3592e84f988 Time X034 6.67 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X035.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X035 "Fre PodWR Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 ; MOV EAX,[x] | MOV EAX,[y] | MOV [z],$1 ; | | MOV EAX,[z] ; | | MOV EBX,[a] ; forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl $1,(%rdi) _litmus_P2_2_: movl (%rdi),%eax _litmus_P2_3_: movl (%r9),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: movl (%rcx),%eax Test X035 Required Histogram (8 states) 3689 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 1430076:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 1539462:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 1788282:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 1642321:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 1887878:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 1701619:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 6673 :>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 9996311, Negative: 3689 Condition forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) is NOT validated Hash=e8699cae9e63a08b644b4104537ab25d Time X035 6.95 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X036.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X036 "Fre PodWR Fre PodWR Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: movl (%rcx),%eax Test X036 Required Histogram (16 states) 1164 :>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 398154:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 339939:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 763688:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 363675:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1564156:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 745277:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 539514:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 461315:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 869277:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1743356:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 551469:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 716811:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 500648:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 439552:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 2005 :>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; No Witnesses Positive: 9998836, Negative: 1164 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is NOT validated Hash=cec47d80017b927e6e7054da5bfb2360 Time X036 9.06 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X037.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X037 "Fre PodWW Wse PodWR Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$1 ; MOV [x],$1 | MOV EAX,[y] | MOV EAX,[z] | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: movl (%rcx),%eax Test X037 Required Histogram (16 states) 306878:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 762859:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 1543180:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 614102:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 998843:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 679655:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 561748:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 2564 :>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 294 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 247673:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 327657:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 657864:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 462869:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 1655765:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 774120:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 403929:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; No Witnesses Positive: 9999706, Negative: 294 Condition forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is NOT validated Hash=aa68e60e1b3a410bdb503735e9b7baab Time X037 9.49 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X038.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X038 "Fre PodWW Wse PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 ; MOV [x],$1 | MOV EAX,[y] | MOV [z],$1 ; | | MOV EAX,[z] ; | | MOV EBX,[a] ; forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl $1,(%rdi) _litmus_P2_2_: movl (%rdi),%eax _litmus_P2_3_: movl (%r9),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: movl (%rcx),%eax Test X038 Required Histogram (8 states) 1348565:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 2022150:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 2017578:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 10693 :>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 808 :>1:EAX=0; 2:EAX=1; 2:EBX=0; x=2; 1297498:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 1631560:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 1671148:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; No Witnesses Positive: 9999192, Negative: 808 Condition forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is NOT validated Hash=42da377c51b01f1c3b53a50ee55abbcd Time X038 6.98 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X039.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X039 "Fre PodWR Fre PodWW Wse PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$1 | MOV [y],$2 | MOV [z],$1 ; MOV EAX,[x] | MOV [y],$1 | MOV EAX,[z] | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rsi) _litmus_P2_1_: movl (%rcx),%eax Test X039 Required Histogram (16 states) 349783:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 807639:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 848694:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 620133:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 1753383:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 534770:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 540321:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 2100 :>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 319 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 387243:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 284368:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 1498372:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 366054:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 874088:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 651680:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 481053:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; No Witnesses Positive: 9999681, Negative: 319 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) is NOT validated Hash=fa3629937eda50a0fa2ed74a11cc639c Time X039 9.77 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X040.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X040 "Fre PodWW Wse PodWW Wse PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$1 ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[z] | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rsi) _litmus_P2_1_: movl (%rcx),%eax Test X040 Required Histogram (16 states) 816981:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 710818:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 681060:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 3241 :>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 238592:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 758687:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 1703192:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 541245:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 354434:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 1522851:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 916120:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 511946:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 30 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=2; 242067:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 356923:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 641813:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; No Witnesses Positive: 9999970, Negative: 30 Condition forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) is NOT validated Hash=5475ac4386ba019ad865441a62da7cd8 Time X040 10.23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X041.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X041 "Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 ; MOV [z],$1 | MOV [x],$2 ; MOV [x],$1 | MOV [y],$1 ; | MOV EAX,[y] ; | MOV EBX,[z] ; forall (1:EAX=1 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1)) Generated assembler _litmus_P1_0_: movl $2,(%r9) _litmus_P1_1_: movl $1,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X041 Required Histogram (4 states) 9987114:>1:EAX=1; 1:EBX=0; x=1; 198716:>1:EAX=1; 1:EBX=1; x=1; 2677 :>1:EAX=1; 1:EBX=0; x=2; 9811493:>1:EAX=1; 1:EBX=1; x=2; No Witnesses Positive: 19997323, Negative: 2677 Condition forall (1:EAX=1 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1)) is NOT validated Hash=3ad76800dd197d5e94fede2c9fc81f40 Time X041 6.92 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X042.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X042 "Fre PodWR Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$2 ; MOV EAX,[x] | MOV [y],$1 | MOV [z],$1 ; | | MOV EAX,[z] ; | | MOV EBX,[a] ; forall (2:EAX=1 /\ (0:EAX=1 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 0:EAX=0 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1))) Generated assembler _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl $1,(%rdi) _litmus_P2_2_: movl (%rdi),%eax _litmus_P2_3_: movl (%r9),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X042 Required Histogram (8 states) 1498125:>0:EAX=0; 2:EAX=1; 2:EBX=0; y=1; 1857961:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 2081689:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 12319 :>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 1080 :>0:EAX=0; 2:EAX=1; 2:EBX=0; y=2; 1424259:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=2; 1257808:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=2; 1866759:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=2; No Witnesses Positive: 9998920, Negative: 1080 Condition forall (2:EAX=1 /\ (0:EAX=1 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 0:EAX=0 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1))) is NOT validated Hash=714d457fe86ae52e93460687fe1226e3 Time X042 6.81 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X043.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X043 "Fre PodWR Fre PodWR Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$2 ; MOV EAX,[x] | MOV EAX,[y] | MOV [z],$1 | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1)))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X043 Required Histogram (16 states) 333499:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 1567784:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 901790:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 579506:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 792999:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 613077:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 587549:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 2527 :>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 437 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=2; 325711:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=2; 435822:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 817904:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 308361:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 678181:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 1618571:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; 436282:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; No Witnesses Positive: 9999563, Negative: 437 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1)))) is NOT validated Hash=c9b6ff6979adcc51530850a73d0ab70b Time X043 9.74 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X044.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X044 "Fre PodWW Wse PodWR Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$2 ; MOV [x],$1 | MOV EAX,[y] | MOV [z],$1 | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X044 Required Histogram (16 states) 1762945:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 644521:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 576282:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 4797 :>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 267654:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=2; z=1; 684416:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 796653:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 509409:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 300179:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=2; 822114:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=2; 781764:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=2; 610180:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=2; 39 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=2; z=2; 231874:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=2; 317789:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=2; 1689384:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=2; No Witnesses Positive: 9999961, Negative: 39 Condition forall (3:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))))) is NOT validated Hash=a388b729ed49ab3ea7e4f75bd38d2d46 Time X044 10.22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X045.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X045 "Fre PodWW Wse PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 ; MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; | | MOV EAX,[z] ; | | MOV EBX,[a] ; forall (2:EAX=1 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) Generated assembler _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl $1,(%rdi) _litmus_P2_2_: movl (%rdi),%eax _litmus_P2_3_: movl (%r9),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X045 Required Histogram (8 states) 2188710:>2:EAX=1; 2:EBX=0; x=1; y=1; 14263 :>2:EAX=1; 2:EBX=1; x=1; y=1; 1169123:>2:EAX=1; 2:EBX=0; x=2; y=1; 1835525:>2:EAX=1; 2:EBX=1; x=2; y=1; 1299693:>2:EAX=1; 2:EBX=0; x=1; y=2; 2038490:>2:EAX=1; 2:EBX=1; x=1; y=2; 40 :>2:EAX=1; 2:EBX=0; x=2; y=2; 1454156:>2:EAX=1; 2:EBX=1; x=2; y=2; No Witnesses Positive: 9999960, Negative: 40 Condition forall (2:EAX=1 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) is NOT validated Hash=49bfd76238322cf9a57dd785640aa7b0 Time X045 7.34 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X046.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X046 "Fre PodWR Fre PodWW Wse PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$1 | MOV [y],$2 | MOV [z],$2 ; MOV EAX,[x] | MOV [y],$1 | MOV [z],$1 | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X046 Required Histogram (16 states) 878713:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 622265:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 659689:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 3640 :>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 257456:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=2; z=1; 1639520:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 687179:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 539144:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 297669:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=2; 753682:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=2; 1776338:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=2; 542935:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=2; 47 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=2; z=2; 317647:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=2; 271156:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=2; 752920:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=2; No Witnesses Positive: 9999953, Negative: 47 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))))) is NOT validated Hash=c9c76d2d9f6a5c85dfc99f3a92524206 Time X046 10.00 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X047.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X047 "Fre PodWW Wse PodWW Wse PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$2 ; MOV [x],$1 | MOV [y],$1 | MOV [z],$1 | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X047 Required Histogram (16 states) 698073:>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 5627 :>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 729979:>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 677526:>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 1653527:>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 587809:>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 244761:>3:EAX=1; 3:EBX=0; x=2; y=2; z=1; 689526:>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 783905:>3:EAX=1; 3:EBX=0; x=1; y=1; z=2; 685930:>3:EAX=1; 3:EBX=1; x=1; y=1; z=2; 238168:>3:EAX=1; 3:EBX=0; x=2; y=1; z=2; 1650909:>3:EAX=1; 3:EBX=1; x=2; y=1; z=2; 307562:>3:EAX=1; 3:EBX=0; x=1; y=2; z=2; 778065:>3:EAX=1; 3:EBX=1; x=1; y=2; z=2; 2 :>3:EAX=1; 3:EBX=0; x=2; y=2; z=2; 268631:>3:EAX=1; 3:EBX=1; x=2; y=2; z=2; No Witnesses Positive: 9999998, Negative: 2 Condition forall (3:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))))) is NOT validated Hash=b54669397e7954579242e1596bd9ea21 Time X047 10.41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X048.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X048 "Fre PodWR Fre PodWR" {} P0 | P1 ; MOV [y],$1 | MOV [x],$1 ; MOV EAX,[x] | MOV EAX,[y] ; forall (0:EAX=1 /\ (1:EAX=1 \/ 1:EAX=0) \/ 0:EAX=0 /\ 1:EAX=1) Generated assembler _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: movl (%rcx),%eax _litmus_P0_0_: movl $1,(%rcx) _litmus_P0_1_: movl (%rsi),%eax Test X048 Required Histogram (4 states) 153297:>0:EAX=0; 1:EAX=0; 9904918:>0:EAX=1; 1:EAX=0; 9901854:>0:EAX=0; 1:EAX=1; 39931 :>0:EAX=1; 1:EAX=1; No Witnesses Positive: 19846703, Negative: 153297 Condition forall (0:EAX=1 /\ (1:EAX=1 \/ 1:EAX=0) \/ 0:EAX=0 /\ 1:EAX=1) is NOT validated Hash=eb447b2ffe44de821f49c40caa8e9757 Time X048 5.78 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X049.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X049 "Fre PodWR Fre PodWR Fre PodWR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$1 | MOV [y],$1 ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] ; forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ (2:EAX=1 \/ 2:EAX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ 2:EAX=1)) Generated assembler _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: movl (%rcx),%eax _litmus_P0_0_: movl $1,(%rcx) _litmus_P0_1_: movl (%rsi),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: movl (%rcx),%eax Test X049 Required Histogram (8 states) 7506 :>0:EAX=0; 1:EAX=0; 2:EAX=0; 1542454:>0:EAX=1; 1:EAX=0; 2:EAX=0; 1638778:>0:EAX=0; 1:EAX=1; 2:EAX=0; 1684185:>0:EAX=1; 1:EAX=1; 2:EAX=0; 1620955:>0:EAX=0; 1:EAX=0; 2:EAX=1; 1788785:>0:EAX=1; 1:EAX=0; 2:EAX=1; 1713494:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3843 :>0:EAX=1; 1:EAX=1; 2:EAX=1; No Witnesses Positive: 9992494, Negative: 7506 Condition forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ (2:EAX=1 \/ 2:EAX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ 2:EAX=1)) is NOT validated Hash=7015574e5960da9548f7fd04ec792cdb Time X049 6.07 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X050.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X050 "Fre PodWR Fre PodWR Fre PodWR Fre PodWR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] | MOV EAX,[a] ; forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ 3:EAX=1))) Generated assembler _litmus_P3_0_: movl $1,(%rcx) _litmus_P3_1_: movl (%rsi),%eax _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: movl (%rcx),%eax Test X050 Required Histogram (16 states) 1675 :>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=0; 419095:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=0; 452891:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=0; 806778:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=0; 385090:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=0; 1555599:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=0; 837898:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=0; 515980:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=0; 417728:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 808870:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 1687561:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 429706:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 732235:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 469301:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 478725:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 868 :>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; No Witnesses Positive: 9998325, Negative: 1675 Condition forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ 3:EAX=1))) is NOT validated Hash=4dbc449f6040a97331307a6f2e1561cc Time X050 8.53 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X051.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X051 "Fre PodWW Wse PodWR Fre PodWR Fre PodWR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$1 ; MOV [x],$1 | MOV EAX,[y] | MOV EAX,[z] | MOV EAX,[a] ; forall (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ x=1))) Generated assembler _litmus_P3_0_: movl $1,(%rcx) _litmus_P3_1_: movl (%rsi),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: movl (%rcx),%eax Test X051 Required Histogram (16 states) 356954:>1:EAX=0; 2:EAX=0; 3:EAX=0; x=1; 805705:>1:EAX=1; 2:EAX=0; 3:EAX=0; x=1; 1619280:>1:EAX=0; 2:EAX=1; 3:EAX=0; x=1; 554598:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=1; 873148:>1:EAX=0; 2:EAX=0; 3:EAX=1; x=1; 562668:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=1; 513910:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=1; 1945 :>1:EAX=1; 2:EAX=1; 3:EAX=1; x=1; 468 :>1:EAX=0; 2:EAX=0; 3:EAX=0; x=2; 328524:>1:EAX=1; 2:EAX=0; 3:EAX=0; x=2; 348119:>1:EAX=0; 2:EAX=1; 3:EAX=0; x=2; 733803:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=2; 389579:>1:EAX=0; 2:EAX=0; 3:EAX=1; x=2; 1635302:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=2; 805775:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=2; 470222:>1:EAX=1; 2:EAX=1; 3:EAX=1; x=2; No Witnesses Positive: 9999532, Negative: 468 Condition forall (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ x=1))) is NOT validated Hash=f519363728e8bdee4ed34bfa7d7e9ee8 Time X051 8.41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X052.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X052 "Fre PodWW Wse PodWR Fre PodWR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$2 | MOV [y],$1 ; MOV [x],$1 | MOV EAX,[y] | MOV EAX,[z] ; forall (1:EAX=1 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ x=1)) Generated assembler _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: movl (%rcx),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: movl (%rcx),%eax Test X052 Required Histogram (8 states) 1630084:>1:EAX=0; 2:EAX=0; x=1; 2154538:>1:EAX=1; 2:EAX=0; x=1; 1764468:>1:EAX=0; 2:EAX=1; x=1; 6185 :>1:EAX=1; 2:EAX=1; x=1; 1974 :>1:EAX=0; 2:EAX=0; x=2; 1151025:>1:EAX=1; 2:EAX=0; x=2; 1627696:>1:EAX=0; 2:EAX=1; x=2; 1664030:>1:EAX=1; 2:EAX=1; x=2; No Witnesses Positive: 9998026, Negative: 1974 Condition forall (1:EAX=1 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ x=1)) is NOT validated Hash=b87af853b5ea74735224b6f1c11218ce Time X052 6.35 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X053.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X053 "Fre PodWW Wse PodWW Wse PodWR Fre PodWR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$1 ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[z] | MOV EAX,[a] ; forall (2:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rcx) _litmus_P3_1_: movl (%rsi),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rsi) _litmus_P2_1_: movl (%rcx),%eax Test X053 Required Histogram (16 states) 925624:>2:EAX=0; 3:EAX=0; x=1; y=1; 782811:>2:EAX=1; 3:EAX=0; x=1; y=1; 627457:>2:EAX=0; 3:EAX=1; x=1; y=1; 2474 :>2:EAX=1; 3:EAX=1; x=1; y=1; 286599:>2:EAX=0; 3:EAX=0; x=2; y=1; 678549:>2:EAX=1; 3:EAX=0; x=2; y=1; 1558186:>2:EAX=0; 3:EAX=1; x=2; y=1; 553014:>2:EAX=1; 3:EAX=1; x=2; y=1; 398087:>2:EAX=0; 3:EAX=0; x=1; y=2; 1568853:>2:EAX=1; 3:EAX=0; x=1; y=2; 867162:>2:EAX=0; 3:EAX=1; x=1; y=2; 484202:>2:EAX=1; 3:EAX=1; x=1; y=2; 61 :>2:EAX=0; 3:EAX=0; x=2; y=2; 214177:>2:EAX=1; 3:EAX=0; x=2; y=2; 404923:>2:EAX=0; 3:EAX=1; x=2; y=2; 647821:>2:EAX=1; 3:EAX=1; x=2; y=2; No Witnesses Positive: 9999939, Negative: 61 Condition forall (2:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) is NOT validated Hash=47ebaa767ace1cf2e0bcdb53a3ce03e1 Time X053 8.93 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X054.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X054 "Fre PodWW Wse PodWR" {} P0 | P1 ; MOV [y],$1 | MOV [x],$2 ; MOV [x],$1 | MOV EAX,[y] ; forall (1:EAX=1 /\ (x=2 \/ x=1) \/ 1:EAX=0 /\ x=1) Generated assembler _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: movl (%rcx),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X054 Required Histogram (4 states) 9885499:>1:EAX=0; x=1; 222380:>1:EAX=1; x=1; 16570 :>1:EAX=0; x=2; 9875551:>1:EAX=1; x=2; No Witnesses Positive: 19983430, Negative: 16570 Condition forall (1:EAX=1 /\ (x=2 \/ x=1) \/ 1:EAX=0 /\ x=1) is NOT validated Hash=62acb715d47784e9a92843581eaa8492 Time X054 6.24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X055.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X055 "Fre PodWW Wse PodWR Fre PodWW Wse PodWR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$2 ; MOV [x],$1 | MOV EAX,[y] | MOV [z],$1 | MOV EAX,[a] ; forall (1:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1)))) Generated assembler _litmus_P3_0_: movl $2,(%rcx) _litmus_P3_1_: movl (%rsi),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X055 Required Histogram (16 states) 1677351:>1:EAX=0; 3:EAX=0; x=1; z=1; 691007:>1:EAX=1; 3:EAX=0; x=1; z=1; 570597:>1:EAX=0; 3:EAX=1; x=1; z=1; 5476 :>1:EAX=1; 3:EAX=1; x=1; z=1; 251866:>1:EAX=0; 3:EAX=0; x=2; z=1; 774999:>1:EAX=1; 3:EAX=0; x=2; z=1; 758398:>1:EAX=0; 3:EAX=1; x=2; z=1; 617844:>1:EAX=1; 3:EAX=1; x=2; z=1; 337421:>1:EAX=0; 3:EAX=0; x=1; z=2; 860521:>1:EAX=1; 3:EAX=0; x=1; z=2; 708987:>1:EAX=0; 3:EAX=1; x=1; z=2; 512228:>1:EAX=1; 3:EAX=1; x=1; z=2; 62 :>1:EAX=0; 3:EAX=0; x=2; z=2; 370463:>1:EAX=1; 3:EAX=0; x=2; z=2; 298908:>1:EAX=0; 3:EAX=1; x=2; z=2; 1563872:>1:EAX=1; 3:EAX=1; x=2; z=2; No Witnesses Positive: 9999938, Negative: 62 Condition forall (1:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1)))) is NOT validated Hash=b51e21d5745fdcfac40f05c5b22c7f20 Time X055 8.98 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X056.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X056 "Fre PodWW Wse PodWW Wse PodWR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$2 | MOV [y],$2 ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[z] ; forall (2:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) Generated assembler _litmus_P2_0_: movl $2,(%rsi) _litmus_P2_1_: movl (%rcx),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X056 Required Histogram (8 states) 2257435:>2:EAX=0; x=1; y=1; 12761 :>2:EAX=1; x=1; y=1; 1104044:>2:EAX=0; x=2; y=1; 1930473:>2:EAX=1; x=2; y=1; 1635240:>2:EAX=0; x=1; y=2; 1696518:>2:EAX=1; x=1; y=2; 134 :>2:EAX=0; x=2; y=2; 1363395:>2:EAX=1; x=2; y=2; No Witnesses Positive: 9999866, Negative: 134 Condition forall (2:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) is NOT validated Hash=feb201c8f0d40ef060b1fa16fc64e45c Time X056 6.75 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./src/X057.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X057 "Fre PodWW Wse PodWW Wse PodWW Wse PodWR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$2 ; MOV [x],$1 | MOV [y],$1 | MOV [z],$1 | MOV EAX,[a] ; forall (3:EAX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) Generated assembler _litmus_P3_0_: movl $2,(%rcx) _litmus_P3_1_: movl (%rsi),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X057 Required Histogram (16 states) 727890:>3:EAX=0; x=1; y=1; z=1; 4686 :>3:EAX=1; x=1; y=1; z=1; 759229:>3:EAX=0; x=2; y=1; z=1; 695452:>3:EAX=1; x=2; y=1; z=1; 1638224:>3:EAX=0; x=1; y=2; z=1; 600784:>3:EAX=1; x=1; y=2; z=1; 230709:>3:EAX=0; x=2; y=2; z=1; 709087:>3:EAX=1; x=2; y=2; z=1; 855731:>3:EAX=0; x=1; y=1; z=2; 608371:>3:EAX=1; x=1; y=1; z=2; 289991:>3:EAX=0; x=2; y=1; z=2; 1585024:>3:EAX=1; x=2; y=1; z=2; 328990:>3:EAX=0; x=1; y=2; z=2; 705421:>3:EAX=1; x=1; y=2; z=2; 4 :>3:EAX=0; x=2; y=2; z=2; 260407:>3:EAX=1; x=2; y=2; z=2; No Witnesses Positive: 9999996, Negative: 4 Condition forall (3:EAX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) is NOT validated Hash=ddc53d4c91153386f624c41db0457e74 Time X057 9.58 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X000-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X000-F "Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 ; MOV [y],$1 | MOV [x],$1 ; MOV EAX,[y] | MOV EAX,[x] ; MFENCE | MFENCE ; MOV EBX,[x] | MOV EBX,[y] ; forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: mfence _litmus_P1_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rdi) _litmus_P0_1_: movl (%rdi),%eax _litmus_P0_2_: mfence _litmus_P0_3_: movl (%r8),%edx Test X000-F Required Histogram (3 states) 7820669:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 7830877:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 4348454:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) is validated Hash=c834c7d23bd1d798d7d30fb1518a4a5e Time X000-F 7.06 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X001-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X001-F "Fre Rfi PodRR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$1 | MOV [y],$1 ; MOV EAX,[z] | MOV EAX,[x] | MOV EAX,[y] ; MFENCE | MFENCE | MFENCE ; MOV EBX,[x] | MOV EBX,[y] | MOV EBX,[z] ; forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rdi) _litmus_P0_1_: movl (%rdi),%eax _litmus_P0_2_: mfence _litmus_P0_3_: movl (%r8),%edx _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: mfence _litmus_P1_3_: movl (%rdi),%edx Test X001-F Required Histogram (7 states) 400412:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 366273:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2829727:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 399189:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2729011:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2612825:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 662563:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=4f0fae3dcb8a859cc322a6bbee50a754 Time X001-F 7.08 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X002-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X002-F "Fre PodWW Rfi PodRR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [y],$1 | MOV [z],$1 ; MOV [x],$1 | MOV EAX,[y] | MOV EAX,[z] ; MOV EAX,[x] | MFENCE | MFENCE ; MFENCE | MOV EBX,[z] | MOV EBX,[a] ; MOV EBX,[y] | | ; forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%rdi) _litmus_P2_1_: movl (%rdi),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%r9) _litmus_P0_1_: movl $1,(%r8) _litmus_P0_2_: movl (%r8),%eax _litmus_P0_3_: mfence _litmus_P0_4_: movl (%rdi),%edx _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: mfence _litmus_P1_3_: movl (%rdi),%edx Test X002-F Required Histogram (7 states) 450582:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 367717:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2865412:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 366592:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2618752:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2579441:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 751504:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=edbc1cbcb2457d47b515390f8b0c6c4b Time X002-F 7.73 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X003-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X003-F "Fre PodWR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$1 | MOV [y],$1 ; MFENCE | MOV EAX,[x] | MOV EAX,[y] ; MOV EAX,[x] | MFENCE | MFENCE ; | MOV EBX,[y] | MOV EBX,[z] ; forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rcx) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rsi),%eax _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: mfence _litmus_P1_3_: movl (%rdi),%edx Test X003-F Required Histogram (7 states) 390382:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 402078:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2745950:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 481518:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2716574:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2545012:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 718486:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=bb4552ee893ae626f06ac613597cf2b5 Time X003-F 7.04 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X004-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X004-F "Fre PodWR Fre PodWR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; MFENCE | MFENCE | MOV EAX,[y] | MOV EAX,[z] ; MOV EAX,[x] | MOV EAX,[y] | MFENCE | MFENCE ; | | MOV EBX,[z] | MOV EBX,[a] ; forall (2:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%rdi),%edx Test X004-F Required Histogram (15 states) 27073 :>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 13579 :>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 346427:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 22537 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 1042713:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 391803:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 1344876:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 22726 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 473905:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 1072873:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 1510222:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 465308:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 1444962:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 1494321:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 326675:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) is validated Hash=42442d63bbc1c6cf841317ddb35ed7e4 Time X004-F 9.12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X005-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X005-F "Fre PodWW Wse PodWR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$1 ; MOV [x],$1 | MFENCE | MOV EAX,[y] | MOV EAX,[z] ; | MOV EAX,[y] | MFENCE | MFENCE ; | | MOV EBX,[z] | MOV EBX,[a] ; forall (2:EAX=1 /\ 3:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%rdi),%edx Test X005-F Required Histogram (15 states) 19492 :>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 305116:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 943981:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 1222876:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 364476:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 1245276:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 1209780:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 202798:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 36697 :>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; 57041 :>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 706752:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 71939 :>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 1354952:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 642413:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; 1616411:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ 3:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is validated Hash=48907b00bf594fe90dd6afe8ab56c7f9 Time X005-F 9.29 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X006-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X006-F "Fre PodWW Wse Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$2 | MOV [y],$1 ; MOV [x],$1 | MOV EAX,[x] | MOV EAX,[y] ; | MFENCE | MFENCE ; | MOV EBX,[y] | MOV EBX,[z] ; forall (2:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: mfence _litmus_P1_3_: movl (%rdi),%edx Test X006-F Required Histogram (10 states) 388926:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 2949 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 2309800:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 363 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 2310791:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 2151 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 461730:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 788018:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 839382:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 2895890:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=b3597267ff79dc703c58abad3638e1c7 Time X006-F 6.97 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X007-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X007-F "Fre PodWR Fre PodWW Wse Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$2 | MOV [z],$1 ; MFENCE | MOV [y],$1 | MOV EAX,[y] | MOV EAX,[z] ; MOV EAX,[x] | | MFENCE | MFENCE ; | | MOV EBX,[z] | MOV EBX,[a] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%rdi),%edx Test X007-F Required Histogram (22 states) 24 :>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 17555 :>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 323983:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 573 :>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 4676 :>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 356391:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 1048692:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 76 :>0:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 626 :>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 1248790:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 1186418:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 4447 :>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 2851 :>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 1172439:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 171323:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 66454 :>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=2; 51381 :>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 1480459:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 70051 :>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 652553:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 713721:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; 1426517:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) is validated Hash=51f9c77d649cb33a973ec86222ad7278 Time X007-F 9.72 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X008-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X008-F "Fre PodWW Wse PodWW Wse Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$1 ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[y] | MOV EAX,[z] ; | | MFENCE | MFENCE ; | | MOV EBX,[z] | MOV EBX,[a] ; forall (3:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%rdi),%edx Test X008-F Required Histogram (22 states) 19 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 273614:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 3772 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 876123:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 558 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 974051:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 1998 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 107158:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 29914 :>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 1307 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 537248:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 170 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 1446494:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 4084 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 1032942:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 43745 :>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 1452235:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 607201:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 1284960:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 108427:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 151045:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 1062935:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is validated Hash=3d86f62c47a885ade730c817b775160f Time X008-F 9.78 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X009-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X009-F "Fre PodWW Rfi PodRR Fre Rfi PodRR" {} P0 | P1 ; MOV [z],$1 | MOV [y],$1 ; MOV [x],$1 | MOV EAX,[y] ; MOV EAX,[x] | MFENCE ; MFENCE | MOV EBX,[z] ; MOV EBX,[y] | ; forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: mfence _litmus_P1_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rdi) _litmus_P0_1_: movl $1,(%r9) _litmus_P0_2_: movl (%r9),%eax _litmus_P0_3_: mfence _litmus_P0_4_: movl (%r8),%edx Test X009-F Required Histogram (3 states) 7724416:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 7157202:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 5118382:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) is validated Hash=50cfbfb7cc770547cd51ac3eb132f43e Time X009-F 7.53 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X010-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X010-F "Fre PodWR Fre PodWW Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [x],$1 | MOV [z],$1 ; MFENCE | MOV [y],$1 | MOV EAX,[z] ; MOV EAX,[x] | MOV EAX,[y] | MFENCE ; | MFENCE | MOV EBX,[a] ; | MOV EBX,[z] | ; forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%rdi) _litmus_P2_1_: movl (%rdi),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%r9) _litmus_P1_1_: movl $1,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: mfence _litmus_P1_4_: movl (%rdi),%edx Test X010-F Required Histogram (7 states) 370287:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 427733:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2736018:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 425703:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2467053:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2803957:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 769249:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=9c09a7f12b2416283d686dcda9050e0c Time X010-F 7.59 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X011-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X011-F "Fre PodWW Wse PodWW Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [x],$2 | MOV [z],$1 ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[z] ; | MOV EAX,[y] | MFENCE ; | MFENCE | MOV EBX,[a] ; | MOV EBX,[z] | ; forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: movl $1,(%rdi) _litmus_P2_1_: movl (%rdi),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%r9) _litmus_P1_1_: movl $1,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: mfence _litmus_P1_4_: movl (%rdi),%edx Test X011-F Required Histogram (7 states) 363270:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 2369577:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 2295264:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 427710:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 772902:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 776153:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 2995124:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is validated Hash=08286b1728598fb04b1e98018b9ef14e Time X011-F 7.70 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X012-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X012-F "Fre PodWR Fre Rfi PodRR" {} P0 | P1 ; MOV [y],$1 | MOV [x],$1 ; MFENCE | MOV EAX,[x] ; MOV EAX,[x] | MFENCE ; | MOV EBX,[y] ; forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: mfence _litmus_P1_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rcx) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rsi),%eax Test X012-F Required Histogram (3 states) 7630288:>0:EAX=1; 1:EAX=1; 1:EBX=0; 7703431:>0:EAX=0; 1:EAX=1; 1:EBX=1; 4666281:>0:EAX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) is validated Hash=0b7af6d4c8337eb6befc7e49e48eed64 Time X012-F 6.83 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X013-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X013-F "Fre PodWR Fre Rfi PodRR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; MFENCE | MOV EAX,[x] | MFENCE | MOV EAX,[z] ; MOV EAX,[x] | MFENCE | MOV EAX,[z] | MFENCE ; | MOV EBX,[y] | | MOV EBX,[a] ; forall (1:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: mfence _litmus_P1_3_: movl (%rdi),%edx _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax Test X013-F Required Histogram (15 states) 15930 :>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 22498 :>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 388996:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 19576 :>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1243157:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 378652:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1339949:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 23930 :>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 399382:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1128523:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1475241:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 434399:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1466326:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1371859:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 291582:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is validated Hash=0765959719d26e1df5b5cf41197eacc0 Time X013-F 9.19 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X014-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X014-F "Fre PodWW Wse Rfi PodRR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$1 ; MOV [x],$1 | MOV EAX,[x] | MFENCE | MOV EAX,[z] ; | MFENCE | MOV EAX,[z] | MFENCE ; | MOV EBX,[y] | | MOV EBX,[a] ; forall (3:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: mfence _litmus_P1_3_: movl (%rdi),%edx _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax Test X014-F Required Histogram (22 states) 14688 :>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 402 :>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 294174:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 77 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 952740:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 3729 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 1019011:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 10 :>1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 380588:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 5278 :>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 1149044:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 859 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 1314040:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 3013 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 192534:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 47941 :>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 77125 :>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 711558:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 94875 :>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 1502906:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 741432:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 1493976:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is validated Hash=8a00aed502590e756d7f14184830164f Time X014-F 9.34 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X015-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X015-F "Fre PodWW Rfi PodRR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [y],$1 | MOV [z],$1 ; MOV [x],$1 | MFENCE | MOV EAX,[z] ; MOV EAX,[x] | MOV EAX,[z] | MFENCE ; MFENCE | | MOV EBX,[a] ; MOV EBX,[y] | | ; forall (0:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%rdi) _litmus_P2_1_: movl (%rdi),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%r9) _litmus_P0_1_: movl $1,(%r8) _litmus_P0_2_: movl (%r8),%eax _litmus_P0_3_: mfence _litmus_P0_4_: movl (%rdi),%edx _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax Test X015-F Required Histogram (7 states) 476294:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 406345:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 2700118:>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 424578:>0:EAX=1; 0:EBX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2764415:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2492416:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 735834:>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) is validated Hash=a04f7a4a9c45233e3b703b3179b9f5c9 Time X015-F 7.77 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X016-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X016-F "Fre PodWR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$1 | MOV [y],$1 ; MFENCE | MFENCE | MOV EAX,[y] ; MOV EAX,[x] | MOV EAX,[y] | MFENCE ; | | MOV EBX,[z] ; forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rcx) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rsi),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax Test X016-F Required Histogram (7 states) 419048:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 382466:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 2704389:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 471378:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2739981:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2630532:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 652206:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) is validated Hash=42286c6632a29c9c4adbad1a40d93ef2 Time X016-F 6.72 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X017-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X017-F "Fre PodWR Fre PodWR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; MFENCE | MFENCE | MFENCE | MOV EAX,[z] ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] | MFENCE ; | | | MOV EBX,[a] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax Test X017-F Required Histogram (15 states) 23118 :>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 22325 :>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 402175:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 19397 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1069630:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 365117:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1407916:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 21919 :>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 432128:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1078969:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1506300:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 401626:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1455190:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1471933:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 322257:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is validated Hash=33c1bca85c48f5650139505a2fb04a94 Time X017-F 9.05 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X018-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X018-F "Fre PodWW Wse PodWR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$1 ; MOV [x],$1 | MFENCE | MFENCE | MOV EAX,[z] ; | MOV EAX,[y] | MOV EAX,[z] | MFENCE ; | | | MOV EBX,[a] ; forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax Test X018-F Required Histogram (15 states) 18460 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 296758:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 1036957:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 1052150:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 389853:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 1208240:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 1224384:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 256200:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 35032 :>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 57038 :>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 648683:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 67262 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 1393066:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 633238:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 1682679:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is validated Hash=f82732599a44d0d543fd243e44370021 Time X018-F 8.99 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X019-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X019-F "Fre PodWW Wse PodWR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$2 | MOV [y],$1 ; MOV [x],$1 | MFENCE | MOV EAX,[y] ; | MOV EAX,[y] | MFENCE ; | | MOV EBX,[z] ; forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax Test X019-F Required Histogram (7 states) 425788:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 2205086:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 2418824:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 388250:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 856114:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 771971:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 2933967:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is validated Hash=7b0ec08f4b953c33c4e1250d89580ded Time X019-F 6.98 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X020-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X020-F "Fre PodWR Fre PodWW Wse PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$2 | MOV [z],$1 ; MFENCE | MOV [y],$1 | MFENCE | MOV EAX,[z] ; MOV EAX,[x] | | MOV EAX,[z] | MFENCE ; | | | MOV EBX,[a] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax Test X020-F Required Histogram (15 states) 15042 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 397530:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 279274:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 1152542:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 951162:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 1313680:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 1078830:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 195979:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 99894 :>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 47827 :>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 1510137:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 93165 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 719157:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 758175:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 1387606:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) is validated Hash=f3b221f74769d6e44f146344b3e33839 Time X020-F 9.20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X021-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X021-F "Fre PodWW Wse PodWW Wse PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$1 ; MOV [x],$1 | MOV [y],$1 | MFENCE | MOV EAX,[z] ; | | MOV EAX,[z] | MFENCE ; | | | MOV EBX,[a] ; forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax Test X021-F Required Histogram (15 states) 315262:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 815440:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 1023196:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 98427 :>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 38724 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 578399:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 1435810:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 1128565:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 55293 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 1365101:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 677675:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 1225681:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 120895:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 156041:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 965491:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) is validated Hash=286b85bf09527d984586ac4c33680b51 Time X021-F 9.57 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X022-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X022-F "Fre PodWW Wse Rfi PodRR" {} P0 | P1 ; MOV [y],$1 | MOV [x],$2 ; MOV [x],$1 | MOV EAX,[x] ; | MFENCE ; | MOV EBX,[y] ; forall (1:EAX=2 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1) \/ 1:EAX=1 /\ 1:EBX=1 /\ x=1) Generated assembler _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: mfence _litmus_P1_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X022-F Required Histogram (4 states) 8218886:>1:EAX=2; 1:EBX=0; x=1; 8788 :>1:EAX=1; 1:EBX=1; x=1; 1877376:>1:EAX=2; 1:EBX=1; x=1; 9894950:>1:EAX=2; 1:EBX=1; x=2; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (1:EAX=2 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1) \/ 1:EAX=1 /\ 1:EBX=1 /\ x=1) is validated Hash=c5b9ee7ee9d46c63885c1fc9807c0a6e Time X022-F 6.70 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X023-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X023-F "Fre PodWW Wse Rfi PodRR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$2 ; MOV [x],$1 | MOV EAX,[x] | MOV [z],$1 | MOV EAX,[z] ; | MFENCE | | MFENCE ; | MOV EBX,[y] | | MOV EBX,[a] ; forall (1:EAX=2 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: movl (%r8),%eax _litmus_P1_2_: mfence _litmus_P1_3_: movl (%rdi),%edx _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X023-F Required Histogram (31 states) 110 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 2 :>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 718 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 83 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 926599:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 3448 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 944885:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 2970 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 25 :>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 3937 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 506 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 873980:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 2434 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 83454 :>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 63 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 70146 :>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 641773:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 792 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 7906 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 498777:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 1130492:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 62769 :>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 1169 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 506912:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 30 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 694136:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 5494 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 1237443:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 151589:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 168571:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 1978787:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=2 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) is validated Hash=e58a6b7d952e9c8208843676b9abe7dd Time X023-F 9.96 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X024-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X024-F "Fre PodWW Rfi PodRR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [y],$1 | MOV [z],$2 ; MOV [x],$1 | MOV [z],$1 | MOV EAX,[z] ; MOV EAX,[x] | | MFENCE ; MFENCE | | MOV EBX,[a] ; MOV EBX,[y] | | ; forall (0:EAX=1 /\ (0:EBX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ (z=2 \/ z=1)) \/ 2:EAX=1 /\ z=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ z=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ z=1))) Generated assembler _litmus_P2_0_: movl $2,(%rdi) _litmus_P2_1_: movl (%rdi),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%r9) _litmus_P0_1_: movl $1,(%r8) _litmus_P0_2_: movl (%r8),%eax _litmus_P0_3_: mfence _litmus_P0_4_: movl (%rdi),%edx _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X024-F Required Histogram (10 states) 672 :>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=0; z=1; 382686:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=0; z=1; 2419856:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=1; 3980 :>0:EAX=1; 0:EBX=0; 2:EAX=1; 2:EBX=1; z=1; 2627 :>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=1; z=1; 2186456:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=1; 377704:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=1; 801745:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=2; 762049:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=2; 3062225:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (0:EBX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ (z=2 \/ z=1)) \/ 2:EAX=1 /\ z=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ z=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ z=1))) is validated Hash=9f4ba7d8c65af2acf5c48242fc1533fe Time X024-F 7.92 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X025-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X025-F "Fre PodWR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$1 | MOV [y],$2 ; MFENCE | MOV [y],$1 | MOV EAX,[y] ; MOV EAX,[x] | | MFENCE ; | | MOV EBX,[z] ; forall (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ y=1)) Generated assembler _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rcx) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rsi),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X025-F Required Histogram (10 states) 261 :>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 452792:>0:EAX=0; 2:EAX=2; 2:EBX=0; y=1; 2362301:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=1; 3184 :>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 1978 :>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 2460701:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=1; 355238:>0:EAX=1; 2:EAX=2; 2:EBX=1; y=1; 883577:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=2; 757806:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=2; 2722162:>0:EAX=1; 2:EAX=2; 2:EBX=1; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ y=1)) is validated Hash=b71a41b09cccb83b3bbf5491bef41b1b Time X025-F 6.91 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X026-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X026-F "Fre PodWR Fre PodWR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$2 ; MFENCE | MFENCE | MOV [z],$1 | MOV EAX,[z] ; MOV EAX,[x] | MOV EAX,[y] | | MFENCE ; | | | MOV EBX,[a] ; forall (0:EAX=1 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X026-F Required Histogram (22 states) 279 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 61 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 967 :>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 16018 :>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 1105085:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 355075:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 1204763:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 627 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 4400 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 5974 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 2840 :>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 319679:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 1008629:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 1127235:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 180891:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 75848 :>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=2; 60463 :>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 611421:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 47099 :>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 743110:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 1642186:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; 1487350:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) is validated Hash=caba012cd09e7c971fff90d91b6005a1 Time X026-F 9.47 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X027-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X027-F "Fre PodWW Wse PodWR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$2 ; MOV [x],$1 | MFENCE | MOV [z],$1 | MOV EAX,[z] ; | MOV EAX,[y] | | MFENCE ; | | | MOV EBX,[a] ; forall (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X027-F Required Histogram (22 states) 130 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 650 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 922227:>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 916055:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 3394 :>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 3178 :>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 864550:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 118922:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 92 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 56707 :>1:EAX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 626529:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 1177 :>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 5599 :>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 475709:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 1172884:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 68806 :>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 519077:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 743759:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 1292174:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 143469:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 170793:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 1894119:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) is validated Hash=6cff0672f85435f254ea32b6378208e2 Time X027-F 9.35 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X028-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X028-F "Fre PodWW Wse PodWW Wse Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$2 | MOV [y],$2 ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[y] ; | | MFENCE ; | | MOV EBX,[z] ; forall (2:EAX=2 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) Generated assembler _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl (%r8),%eax _litmus_P2_2_: mfence _litmus_P2_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X028-F Required Histogram (10 states) 210 :>2:EAX=1; 2:EBX=0; x=1; y=1; 2047434:>2:EAX=2; 2:EBX=0; x=1; y=1; 3268 :>2:EAX=1; 2:EBX=1; x=1; y=1; 173956:>2:EAX=2; 2:EBX=1; x=1; y=1; 752334:>2:EAX=2; 2:EBX=0; x=2; y=1; 4136 :>2:EAX=1; 2:EBX=1; x=2; y=1; 2239203:>2:EAX=2; 2:EBX=1; x=2; y=1; 715358:>2:EAX=2; 2:EBX=0; x=1; y=2; 2630526:>2:EAX=2; 2:EBX=1; x=1; y=2; 1433575:>2:EAX=2; 2:EBX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=2 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) is validated Hash=88a5ec463ec37a9dcb5e4c7aad8d0a83 Time X028-F 6.96 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X029-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X029-F "Fre PodWR Fre PodWW Wse PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$2 | MOV [z],$2 ; MFENCE | MOV [y],$1 | MOV [z],$1 | MOV EAX,[z] ; MOV EAX,[x] | | | MFENCE ; | | | MOV EBX,[a] ; forall (0:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X029-F Required Histogram (22 states) 31 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 619 :>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 295340:>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=1; 890151:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=1; 3923 :>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 2421 :>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 899150:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=1; 86985 :>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=1; 254 :>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 41780 :>0:EAX=0; 3:EAX=2; 3:EBX=0; y=2; z=1; 1454355:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=1; 983 :>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 4506 :>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 619661:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=1; 1048248:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=1; 45991 :>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=2; 607939:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=2; 1406972:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=2; 1285466:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=2; 159778:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=2; 136426:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=2; 1009021:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1))) is validated Hash=fb1f3d8cee957a65f9849048d3f641f9 Time X029-F 9.58 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X030-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X030-F "Fre PodWW Wse PodWW Wse PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$2 ; MOV [x],$1 | MOV [y],$1 | MOV [z],$1 | MOV EAX,[z] ; | | | MFENCE ; | | | MOV EBX,[a] ; forall (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl (%rdi),%eax _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X030-F Required Histogram (22 states) 458 :>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 662496:>3:EAX=2; 3:EBX=0; x=1; y=1; z=1; 2441 :>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 42552 :>3:EAX=2; 3:EBX=1; x=1; y=1; z=1; 38 :>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 490910:>3:EAX=2; 3:EBX=0; x=2; y=1; z=1; 4361 :>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 870355:>3:EAX=2; 3:EBX=1; x=2; y=1; z=1; 126 :>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 1335995:>3:EAX=2; 3:EBX=0; x=1; y=2; z=1; 4126 :>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 955228:>3:EAX=2; 3:EBX=1; x=1; y=2; z=1; 105984:>3:EAX=2; 3:EBX=0; x=2; y=2; z=1; 1617 :>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 823180:>3:EAX=2; 3:EBX=1; x=2; y=2; z=1; 446247:>3:EAX=2; 3:EBX=0; x=1; y=1; z=2; 999902:>3:EAX=2; 3:EBX=1; x=1; y=1; z=2; 100421:>3:EAX=2; 3:EBX=0; x=2; y=1; z=2; 1834509:>3:EAX=2; 3:EBX=1; x=2; y=1; z=2; 94285 :>3:EAX=2; 3:EBX=0; x=1; y=2; z=2; 931218:>3:EAX=2; 3:EBX=1; x=1; y=2; z=2; 293551:>3:EAX=2; 3:EBX=1; x=2; y=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) is validated Hash=9132e8fe3d54aaeb6fcab3bc1fe0aed4 Time X030-F 9.88 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X031-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X031-F "Fre PodWW Rfi PodRR Fre PodWW Rfi PodRR" {} P0 | P1 ; MOV [a],$1 | MOV [y],$1 ; MOV [x],$1 | MOV [z],$1 ; MOV EAX,[x] | MOV EAX,[z] ; MFENCE | MFENCE ; MOV EBX,[y] | MOV EBX,[a] ; forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl $1,(%rdi) _litmus_P1_2_: movl (%rdi),%eax _litmus_P1_3_: mfence _litmus_P1_4_: movl (%r9),%edx _litmus_P0_0_: movl $1,(%r9) _litmus_P0_1_: movl $1,(%r8) _litmus_P0_2_: movl (%r8),%eax _litmus_P0_3_: mfence _litmus_P0_4_: movl (%rdi),%edx Test X031-F Required Histogram (3 states) 7524531:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 7526028:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 4949441:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) is validated Hash=b4444c9c8cd0860cb73e1a1e9d74d695 Time X031-F 8.49 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X032-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X032-F "Fre PodWR Fre PodWW Rfi PodRR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV [b],$1 | MOV [x],$1 | MOV [z],$1 ; MFENCE | MOV [y],$1 | MOV [a],$1 ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[a] ; | MFENCE | MFENCE ; | MOV EBX,[z] | MOV EBX,[b] ; forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%rdi) _litmus_P2_1_: movl $1,(%r9) _litmus_P2_2_: movl (%r9),%eax _litmus_P2_3_: mfence _litmus_P2_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%r9) _litmus_P1_1_: movl $1,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: mfence _litmus_P1_4_: movl (%rdi),%edx Test X032-F Required Histogram (7 states) 339447:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 386569:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2578533:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 456780:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2565675:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2872632:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 800364:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=64f3944383ae7f5b95b8062a3ae005e1 Time X032-F 8.16 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X033-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X033-F "Fre PodWW Wse PodWW Rfi PodRR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV [b],$1 | MOV [x],$2 | MOV [z],$1 ; MOV [x],$1 | MOV [y],$1 | MOV [a],$1 ; | MOV EAX,[y] | MOV EAX,[a] ; | MFENCE | MFENCE ; | MOV EBX,[z] | MOV EBX,[b] ; forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: movl $1,(%rdi) _litmus_P2_1_: movl $1,(%r9) _litmus_P2_2_: movl (%r9),%eax _litmus_P2_3_: mfence _litmus_P2_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%r9) _litmus_P1_1_: movl $1,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: mfence _litmus_P1_4_: movl (%rdi),%edx Test X033-F Required Histogram (7 states) 340733:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 2068257:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 2443700:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 484843:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 786651:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 909510:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 2966306:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is validated Hash=c453f59be53676b6407c058692e99af4 Time X033-F 8.32 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X034-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X034-F "Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 ; MOV [z],$1 | MOV [x],$1 ; MFENCE | MOV [y],$1 ; MOV EAX,[x] | MOV EAX,[y] ; | MFENCE ; | MOV EBX,[z] ; forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: movl $1,(%r9) _litmus_P1_1_: movl $1,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: mfence _litmus_P1_4_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rcx) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rsi),%eax Test X034-F Required Histogram (3 states) 7301712:>0:EAX=1; 1:EAX=1; 1:EBX=0; 8162632:>0:EAX=0; 1:EAX=1; 1:EBX=1; 4535656:>0:EAX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) is validated Hash=32e9060f8c665d86a104ba06e6471afe Time X034-F 7.34 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X035-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X035-F "Fre PodWR Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 ; MFENCE | MFENCE | MOV [z],$1 ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] ; | | MFENCE ; | | MOV EBX,[a] ; forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl $1,(%rdi) _litmus_P2_2_: movl (%rdi),%eax _litmus_P2_3_: mfence _litmus_P2_4_: movl (%r9),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax Test X035-F Required Histogram (7 states) 407928:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 410290:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 2423174:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 489095:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2780411:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2799424:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 689678:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) is validated Hash=f35de11b2cce8432288065b4e8f59e4a Time X035-F 7.67 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X036-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X036-F "Fre PodWR Fre PodWR Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; MFENCE | MFENCE | MFENCE | MOV [a],$1 ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] | MOV EAX,[a] ; | | | MFENCE ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax Test X036-F Required Histogram (15 states) 23560 :>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 22100 :>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 388813:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 15728 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1105023:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 347023:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1391980:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 30989 :>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 481373:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1111715:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1437206:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 417085:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1485027:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1448572:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 293806:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is validated Hash=6d2b6425f2b21047ffb12b427b82dc56 Time X036-F 9.88 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X037-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X037-F "Fre PodWW Wse PodWR Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$1 ; MOV [x],$1 | MFENCE | MFENCE | MOV [a],$1 ; | MOV EAX,[y] | MOV EAX,[z] | MOV EAX,[a] ; | | | MFENCE ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax Test X037-F Required Histogram (15 states) 21393 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 335070:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 1035448:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 1002079:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 446681:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 1195022:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 1209893:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 170411:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 46751 :>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 42508 :>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 614880:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 52672 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 1631312:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 581031:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 1614849:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is validated Hash=7bd0e453f8d5bed5dcdb57db846de736 Time X037-F 10.16 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X038-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X038-F "Fre PodWW Wse PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 ; MOV [x],$1 | MFENCE | MOV [z],$1 ; | MOV EAX,[y] | MOV EAX,[z] ; | | MFENCE ; | | MOV EBX,[a] ; forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl $1,(%rdi) _litmus_P2_2_: movl (%rdi),%eax _litmus_P2_3_: mfence _litmus_P2_4_: movl (%r9),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax Test X038-F Required Histogram (7 states) 413259:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 2233754:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 2415170:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 417834:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 651497:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 881781:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 2986705:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is validated Hash=b06977a5d886fb7e1ddad5e7d2f81870 Time X038-F 7.45 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X039-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X039-F "Fre PodWR Fre PodWW Wse PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$1 | MOV [y],$2 | MOV [z],$1 ; MFENCE | MOV [y],$1 | MFENCE | MOV [a],$1 ; MOV EAX,[x] | | MOV EAX,[z] | MOV EAX,[a] ; | | | MFENCE ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax Test X039-F Required Histogram (15 states) 12955 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 378129:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 245828:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 955150:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 1076419:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 1346252:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 1101946:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 164723:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 79597 :>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 44076 :>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 1520604:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 82966 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 710629:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 813622:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 1467104:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) is validated Hash=e2ea65c3514ec466b9860d4ddae98523 Time X039-F 10.14 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X040-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X040-F "Fre PodWW Wse PodWW Wse PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$1 ; MOV [x],$1 | MOV [y],$1 | MFENCE | MOV [a],$1 ; | | MOV EAX,[z] | MOV EAX,[a] ; | | | MFENCE ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) Generated assembler _litmus_P3_0_: movl $1,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax Test X040-F Required Histogram (15 states) 335416:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 820395:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 977967:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 103416:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 50423 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 524258:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 1373729:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 1147451:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 48645 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 1283261:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 645649:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 1317444:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 107168:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 178087:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 1086691:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) is validated Hash=ee7cbd858143c337dcb9c6d29dd62322 Time X040-F 10.44 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X041-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X041-F "Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 ; MOV [z],$1 | MOV [x],$2 ; MOV [x],$1 | MOV [y],$1 ; | MOV EAX,[y] ; | MFENCE ; | MOV EBX,[z] ; forall (1:EAX=1 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1)) Generated assembler _litmus_P1_0_: movl $2,(%r9) _litmus_P1_1_: movl $1,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: mfence _litmus_P1_4_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X041-F Required Histogram (3 states) 7565008:>1:EAX=1; 1:EBX=0; x=1; 2646439:>1:EAX=1; 1:EBX=1; x=1; 9788553:>1:EAX=1; 1:EBX=1; x=2; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (1:EAX=1 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1)) is validated Hash=2cbd7a45858c3f41defd4625c3ebc9d5 Time X041-F 7.31 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X042-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X042-F "Fre PodWR Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$2 ; MFENCE | MOV [y],$1 | MOV [z],$1 ; MOV EAX,[x] | | MOV EAX,[z] ; | | MFENCE ; | | MOV EBX,[a] ; forall (2:EAX=1 /\ (0:EAX=1 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 0:EAX=0 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1))) Generated assembler _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl $1,(%rdi) _litmus_P2_2_: movl (%rdi),%eax _litmus_P2_3_: mfence _litmus_P2_4_: movl (%r9),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X042-F Required Histogram (7 states) 361034:>0:EAX=0; 2:EAX=1; 2:EBX=0; y=1; 2178537:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 2404027:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 497580:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 758701:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=2; 829723:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=2; 2970398:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (0:EAX=1 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 0:EAX=0 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1))) is validated Hash=957f5c7bab60ae6a4d781f1ed20486a1 Time X042-F 7.39 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X043-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X043-F "Fre PodWR Fre PodWR Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$2 ; MFENCE | MFENCE | MOV [z],$1 | MOV [a],$1 ; MOV EAX,[x] | MOV EAX,[y] | | MOV EAX,[a] ; | | | MFENCE ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1)))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X043-F Required Histogram (15 states) 13701 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 1188198:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 302149:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 1175049:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 361169:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 1063813:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 1102221:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 184964:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 77637 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=2; 64557 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 577080:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 56338 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 723740:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 1626254:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; 1483130:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1)))) is validated Hash=bfde585c03c275188181f22e4750217c Time X043-F 10.34 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X044-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X044-F "Fre PodWW Wse PodWR Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$2 ; MOV [x],$1 | MFENCE | MOV [z],$1 | MOV [a],$1 ; | MOV EAX,[y] | | MOV EAX,[a] ; | | | MFENCE ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X044-F Required Histogram (15 states) 947527:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 940713:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 893744:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 113363:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 44349 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=2; z=1; 526192:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 429146:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 1250246:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 73777 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=2; 463346:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=2; 701437:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=2; 1248144:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=2; 105845:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=2; 140658:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=2; 2121513:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))))) is validated Hash=90fa1856ff224a98a4703c1cbd31dbef Time X044-F 10.38 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X045-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X045-F "Fre PodWW Wse PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 ; MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; | | MOV EAX,[z] ; | | MFENCE ; | | MOV EBX,[a] ; forall (2:EAX=1 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) Generated assembler _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl $1,(%rdi) _litmus_P2_2_: movl (%rdi),%eax _litmus_P2_3_: mfence _litmus_P2_4_: movl (%r9),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X045-F Required Histogram (7 states) 2005304:>2:EAX=1; 2:EBX=0; x=1; y=1; 148863:>2:EAX=1; 2:EBX=1; x=1; y=1; 731206:>2:EAX=1; 2:EBX=0; x=2; y=1; 2472222:>2:EAX=1; 2:EBX=1; x=2; y=1; 782799:>2:EAX=1; 2:EBX=0; x=1; y=2; 2537083:>2:EAX=1; 2:EBX=1; x=1; y=2; 1322523:>2:EAX=1; 2:EBX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) is validated Hash=9b4de1cacbcdab026f19c27eea69434e Time X045-F 7.72 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X046-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X046-F "Fre PodWR Fre PodWW Wse PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$1 | MOV [y],$2 | MOV [z],$2 ; MFENCE | MOV [y],$1 | MOV [z],$1 | MOV [a],$1 ; MOV EAX,[x] | | | MOV EAX,[a] ; | | | MFENCE ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X046-F Required Histogram (15 states) 300350:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 911346:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 916008:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 86135 :>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 35945 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=2; z=1; 1308070:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 625854:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 1068292:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 57622 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=2; 550340:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=2; 1433021:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=2; 1293071:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=2; 174503:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=2; 157278:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=2; 1082165:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))))) is validated Hash=def29dda4cac4e01529fe40a337896ef Time X046-F 10.57 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X047-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X047-F "Fre PodWW Wse PodWW Wse PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$2 ; MOV [x],$1 | MOV [y],$1 | MOV [z],$1 | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MFENCE ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))))) Generated assembler _litmus_P3_0_: movl $2,(%rdi) _litmus_P3_1_: movl $1,(%r9) _litmus_P3_2_: movl (%r9),%eax _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X047-F Required Histogram (15 states) 684269:>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 45653 :>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 419915:>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 923531:>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 1383968:>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 962852:>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 83162 :>3:EAX=1; 3:EBX=0; x=2; y=2; z=1; 876271:>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 503480:>3:EAX=1; 3:EBX=0; x=1; y=1; z=2; 1002424:>3:EAX=1; 3:EBX=1; x=1; y=1; z=2; 110529:>3:EAX=1; 3:EBX=0; x=2; y=1; z=2; 1740842:>3:EAX=1; 3:EBX=1; x=2; y=1; z=2; 126904:>3:EAX=1; 3:EBX=0; x=1; y=2; z=2; 866354:>3:EAX=1; 3:EBX=1; x=1; y=2; z=2; 269846:>3:EAX=1; 3:EBX=1; x=2; y=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))))) is validated Hash=3cddee2858c3fb6de09aa5e02acd6486 Time X047-F 10.74 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X048-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X048-F "Fre PodWR Fre PodWR" {} P0 | P1 ; MOV [y],$1 | MOV [x],$1 ; MFENCE | MFENCE ; MOV EAX,[x] | MOV EAX,[y] ; forall (0:EAX=1 /\ (1:EAX=1 \/ 1:EAX=0) \/ 0:EAX=0 /\ 1:EAX=1) Generated assembler _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax _litmus_P0_0_: movl $1,(%rcx) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rsi),%eax Test X048-F Required Histogram (3 states) 7952134:>0:EAX=1; 1:EAX=0; 7856480:>0:EAX=0; 1:EAX=1; 4191386:>0:EAX=1; 1:EAX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (0:EAX=1 /\ (1:EAX=1 \/ 1:EAX=0) \/ 0:EAX=0 /\ 1:EAX=1) is validated Hash=60d067018c89f92ec3456c437f85c184 Time X048-F 6.78 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X049-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X049-F "Fre PodWR Fre PodWR Fre PodWR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$1 | MOV [y],$1 ; MFENCE | MFENCE | MFENCE ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] ; forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ (2:EAX=1 \/ 2:EAX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ 2:EAX=1)) Generated assembler _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax _litmus_P0_0_: movl $1,(%rcx) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rsi),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax Test X049-F Required Histogram (7 states) 478637:>0:EAX=1; 1:EAX=0; 2:EAX=0; 449509:>0:EAX=0; 1:EAX=1; 2:EAX=0; 2672036:>0:EAX=1; 1:EAX=1; 2:EAX=0; 432839:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2656378:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2667723:>0:EAX=0; 1:EAX=1; 2:EAX=1; 642878:>0:EAX=1; 1:EAX=1; 2:EAX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ (2:EAX=1 \/ 2:EAX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ 2:EAX=1)) is validated Hash=d766ec6d725495e398481f0ee334999d Time X049-F 6.67 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X050-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X050-F "Fre PodWR Fre PodWR Fre PodWR Fre PodWR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; MFENCE | MFENCE | MFENCE | MFENCE ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] | MOV EAX,[a] ; forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ 3:EAX=1))) Generated assembler _litmus_P3_0_: movl $1,(%rcx) _litmus_P3_1_: mfence _litmus_P3_2_: movl (%rsi),%eax _litmus_P0_0_: movl $1,(%rsi) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax Test X050-F Required Histogram (15 states) 18381 :>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=0; 20245 :>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=0; 388123:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=0; 23288 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=0; 1075091:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=0; 396496:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=0; 1494502:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=0; 19682 :>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 386022:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 1120070:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 1449771:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 391194:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 1440917:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 1488953:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 287265:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ 3:EAX=1))) is validated Hash=695cf2c583c177e359c36b84e129a999 Time X050-F 8.77 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X051-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X051-F "Fre PodWW Wse PodWR Fre PodWR Fre PodWR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$1 ; MOV [x],$1 | MFENCE | MFENCE | MFENCE ; | MOV EAX,[y] | MOV EAX,[z] | MOV EAX,[a] ; forall (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ x=1))) Generated assembler _litmus_P3_0_: movl $1,(%rcx) _litmus_P3_1_: mfence _litmus_P3_2_: movl (%rsi),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax Test X051-F Required Histogram (15 states) 17598 :>1:EAX=0; 2:EAX=0; 3:EAX=0; x=1; 319022:>1:EAX=1; 2:EAX=0; 3:EAX=0; x=1; 1174143:>1:EAX=0; 2:EAX=1; 3:EAX=0; x=1; 1034571:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=1; 359153:>1:EAX=0; 2:EAX=0; 3:EAX=1; x=1; 1181036:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=1; 1210405:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=1; 176068:>1:EAX=1; 2:EAX=1; 3:EAX=1; x=1; 44199 :>1:EAX=1; 2:EAX=0; 3:EAX=0; x=2; 78029 :>1:EAX=0; 2:EAX=1; 3:EAX=0; x=2; 684165:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=2; 77548 :>1:EAX=0; 2:EAX=0; 3:EAX=1; x=2; 1623018:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=2; 605409:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=2; 1415636:>1:EAX=1; 2:EAX=1; 3:EAX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ x=1))) is validated Hash=d61880a6cb6ee56572bbbb8eb2939f1c Time X051-F 9.03 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X052-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X052-F "Fre PodWW Wse PodWR Fre PodWR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$2 | MOV [y],$1 ; MOV [x],$1 | MFENCE | MFENCE ; | MOV EAX,[y] | MOV EAX,[z] ; forall (1:EAX=1 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ x=1)) Generated assembler _litmus_P2_0_: movl $1,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax Test X052-F Required Histogram (7 states) 415553:>1:EAX=0; 2:EAX=0; x=1; 2214686:>1:EAX=1; 2:EAX=0; x=1; 2479331:>1:EAX=0; 2:EAX=1; x=1; 335661:>1:EAX=1; 2:EAX=1; x=1; 823794:>1:EAX=1; 2:EAX=0; x=2; 829796:>1:EAX=0; 2:EAX=1; x=2; 2901179:>1:EAX=1; 2:EAX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ x=1)) is validated Hash=a8a22b68695782e8facb9f206c9f87a5 Time X052-F 6.74 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X053-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X053-F "Fre PodWW Wse PodWW Wse PodWR Fre PodWR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$1 ; MOV [x],$1 | MOV [y],$1 | MFENCE | MFENCE ; | | MOV EAX,[z] | MOV EAX,[a] ; forall (2:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) Generated assembler _litmus_P3_0_: movl $1,(%rcx) _litmus_P3_1_: mfence _litmus_P3_2_: movl (%rsi),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax Test X053-F Required Histogram (15 states) 296402:>2:EAX=0; 3:EAX=0; x=1; y=1; 843342:>2:EAX=1; 3:EAX=0; x=1; y=1; 911852:>2:EAX=0; 3:EAX=1; x=1; y=1; 101438:>2:EAX=1; 3:EAX=1; x=1; y=1; 44413 :>2:EAX=0; 3:EAX=0; x=2; y=1; 620271:>2:EAX=1; 3:EAX=0; x=2; y=1; 1413175:>2:EAX=0; 3:EAX=1; x=2; y=1; 1103958:>2:EAX=1; 3:EAX=1; x=2; y=1; 42729 :>2:EAX=0; 3:EAX=0; x=1; y=2; 1257649:>2:EAX=1; 3:EAX=0; x=1; y=2; 608724:>2:EAX=0; 3:EAX=1; x=1; y=2; 1376050:>2:EAX=1; 3:EAX=1; x=1; y=2; 150641:>2:EAX=1; 3:EAX=0; x=2; y=2; 158111:>2:EAX=0; 3:EAX=1; x=2; y=2; 1071245:>2:EAX=1; 3:EAX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) is validated Hash=fbe98524c4c9b73ffa118132fa4de63f Time X053-F 9.19 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X054-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X054-F "Fre PodWW Wse PodWR" {} P0 | P1 ; MOV [y],$1 | MOV [x],$2 ; MOV [x],$1 | MFENCE ; | MOV EAX,[y] ; forall (1:EAX=1 /\ (x=2 \/ x=1) \/ 1:EAX=0 /\ x=1) Generated assembler _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X054-F Required Histogram (3 states) 8275551:>1:EAX=0; x=1; 1852066:>1:EAX=1; x=1; 9872383:>1:EAX=1; x=2; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (1:EAX=1 /\ (x=2 \/ x=1) \/ 1:EAX=0 /\ x=1) is validated Hash=fd11041c5d72fd760bc633e832dfee90 Time X054-F 6.62 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X055-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X055-F "Fre PodWW Wse PodWR Fre PodWW Wse PodWR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$2 ; MOV [x],$1 | MFENCE | MOV [z],$1 | MFENCE ; | MOV EAX,[y] | | MOV EAX,[a] ; forall (1:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1)))) Generated assembler _litmus_P3_0_: movl $2,(%rcx) _litmus_P3_1_: mfence _litmus_P3_2_: movl (%rsi),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rsi) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X055-F Required Histogram (15 states) 1045266:>1:EAX=0; 3:EAX=0; x=1; z=1; 939080:>1:EAX=1; 3:EAX=0; x=1; z=1; 901393:>1:EAX=0; 3:EAX=1; x=1; z=1; 94460 :>1:EAX=1; 3:EAX=1; x=1; z=1; 56650 :>1:EAX=0; 3:EAX=0; x=2; z=1; 655737:>1:EAX=1; 3:EAX=0; x=2; z=1; 457187:>1:EAX=0; 3:EAX=1; x=2; z=1; 1165368:>1:EAX=1; 3:EAX=1; x=2; z=1; 69702 :>1:EAX=0; 3:EAX=0; x=1; z=2; 506804:>1:EAX=1; 3:EAX=0; x=1; z=2; 656563:>1:EAX=0; 3:EAX=1; x=1; z=2; 1142125:>1:EAX=1; 3:EAX=1; x=1; z=2; 119484:>1:EAX=1; 3:EAX=0; x=2; z=2; 125081:>1:EAX=0; 3:EAX=1; x=2; z=2; 2065100:>1:EAX=1; 3:EAX=1; x=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1)))) is validated Hash=8c8b2beeff1b4be66412f97ed901ee55 Time X055-F 9.36 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X056-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X056-F "Fre PodWW Wse PodWW Wse PodWR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$2 | MOV [y],$2 ; MOV [x],$1 | MOV [y],$1 | MFENCE ; | | MOV EAX,[z] ; forall (2:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) Generated assembler _litmus_P2_0_: movl $2,(%rsi) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rcx),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X056-F Required Histogram (7 states) 1982644:>2:EAX=0; x=1; y=1; 172773:>2:EAX=1; x=1; y=1; 777356:>2:EAX=0; x=2; y=1; 2311392:>2:EAX=1; x=2; y=1; 769613:>2:EAX=0; x=1; y=2; 2575495:>2:EAX=1; x=1; y=2; 1410727:>2:EAX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) is validated Hash=a217e559cb4a765d8cc3d3e3357c35f2 Time X056-F 6.90 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./F/X057-F.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X057-F "Fre PodWW Wse PodWW Wse PodWW Wse PodWR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$2 ; MOV [x],$1 | MOV [y],$1 | MOV [z],$1 | MFENCE ; | | | MOV EAX,[a] ; forall (3:EAX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) Generated assembler _litmus_P3_0_: movl $2,(%rcx) _litmus_P3_1_: mfence _litmus_P3_2_: movl (%rsi),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X057-F Required Histogram (15 states) 735476:>3:EAX=0; x=1; y=1; z=1; 43820 :>3:EAX=1; x=1; y=1; z=1; 563366:>3:EAX=0; x=2; y=1; z=1; 804020:>3:EAX=1; x=2; y=1; z=1; 1203929:>3:EAX=0; x=1; y=2; z=1; 972883:>3:EAX=1; x=1; y=2; z=1; 124883:>3:EAX=0; x=2; y=2; z=1; 789916:>3:EAX=1; x=2; y=2; z=1; 441871:>3:EAX=0; x=1; y=1; z=2; 1006256:>3:EAX=1; x=1; y=1; z=2; 123720:>3:EAX=0; x=2; y=1; z=2; 1791097:>3:EAX=1; x=2; y=1; z=2; 115243:>3:EAX=0; x=1; y=2; z=2; 977931:>3:EAX=1; x=1; y=2; z=2; 305589:>3:EAX=1; x=2; y=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) is validated Hash=7057dbb344775d452cbc169c41a2def2 Time X057-F 9.68 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X000-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X000-A "Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 ; MOV ECX,$1 | MOV ECX,$1 ; XCHG [y],ECX | XCHG [x],ECX ; MOV EAX,[y] | MOV EAX,[x] ; MOV EBX,[x] | MOV EBX,[y] ; forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: movl $1,%r9d _litmus_P1_1_: xchgl %r9d,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,%r9d _litmus_P0_1_: xchgl %r9d,(%rdi) _litmus_P0_2_: movl (%rdi),%eax _litmus_P0_3_: movl (%r8),%edx Test X000-A Required Histogram (3 states) 8030970:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 8030253:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 3938777:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) is validated Hash=54fe05c026e4a0b4de199467510f5552 Time X000-A 7.03 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X001-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X001-A "Fre Rfi PodRR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV ECX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [z],ECX | XCHG [x],ECX | XCHG [y],ECX ; MOV EAX,[z] | MOV EAX,[x] | MOV EAX,[y] ; MOV EBX,[x] | MOV EBX,[y] | MOV EBX,[z] ; forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,%r9d _litmus_P2_1_: xchgl %r9d,(%r8) _litmus_P2_2_: movl (%r8),%eax _litmus_P2_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,%r9d _litmus_P0_1_: xchgl %r9d,(%rdi) _litmus_P0_2_: movl (%rdi),%eax _litmus_P0_3_: movl (%r8),%edx _litmus_P1_0_: movl $1,%r9d _litmus_P1_1_: xchgl %r9d,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx Test X001-A Required Histogram (7 states) 736198:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 827523:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2098618:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 726280:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2198652:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2295253:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 1117476:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=4211bbbe585a8877c07dec854dbb9dfd Time X001-A 7.45 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X002-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X002-A "Fre PodWW Rfi PodRR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV ECX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [a],ECX | XCHG [y],ECX | XCHG [z],ECX ; MOV [x],$1 | MOV EAX,[y] | MOV EAX,[z] ; MOV EAX,[x] | MOV EBX,[z] | MOV EBX,[a] ; MOV EBX,[y] | | ; forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,%r9d _litmus_P2_1_: xchgl %r9d,(%rdi) _litmus_P2_2_: movl (%rdi),%eax _litmus_P2_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,%r10d _litmus_P0_1_: xchgl %r10d,(%r9) _litmus_P0_2_: movl $1,(%r8) _litmus_P0_3_: movl (%r8),%eax _litmus_P0_4_: movl (%rdi),%edx _litmus_P1_0_: movl $1,%r9d _litmus_P1_1_: xchgl %r9d,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx Test X002-A Required Histogram (7 states) 741055:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 728221:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2170202:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 726576:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2206520:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2413031:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 1014395:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=2291cad275d2f1d741e2617c9c446eca Time X002-A 7.98 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X003-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X003-A "Fre PodWR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV EBX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [z],EBX | XCHG [x],ECX | XCHG [y],ECX ; MOV EAX,[x] | MOV EAX,[x] | MOV EAX,[y] ; | MOV EBX,[y] | MOV EBX,[z] ; forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,%r9d _litmus_P2_1_: xchgl %r9d,(%r8) _litmus_P2_2_: movl (%r8),%eax _litmus_P2_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rcx) _litmus_P0_2_: movl (%rsi),%eax _litmus_P1_0_: movl $1,%r9d _litmus_P1_1_: xchgl %r9d,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx Test X003-A Required Histogram (7 states) 747828:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 864209:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2067293:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 739385:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2175770:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2502449:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 903066:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=172fbf6cbcae402fc68ae2939319c0b9 Time X003-A 7.23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X004-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X004-A "Fre PodWR Fre PodWR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV EBX,$1 | MOV EBX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [a],EBX | XCHG [x],EBX | XCHG [y],ECX | XCHG [z],ECX ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[y] | MOV EAX,[z] ; | | MOV EBX,[z] | MOV EBX,[a] ; forall (2:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,%r9d _litmus_P3_1_: xchgl %r9d,(%rdi) _litmus_P3_2_: movl (%rdi),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,%r9d _litmus_P2_1_: xchgl %r9d,(%r8) _litmus_P2_2_: movl (%r8),%eax _litmus_P2_3_: movl (%rdi),%edx Test X004-A Required Histogram (15 states) 80975 :>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 91746 :>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 506618:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 91050 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 1281369:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 570041:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 1055179:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 90149 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 507653:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 1299886:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 1029672:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 574807:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 1218462:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 1227544:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 374849:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) is validated Hash=a81c927fb7d487dc51f71d8630c35b1e Time X004-A 9.62 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X005-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X005-A "Fre PodWW Wse PodWR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV EBX,$2 | MOV ECX,$1 | MOV ECX,$1 ; MOV [x],$1 | XCHG [x],EBX | XCHG [y],ECX | XCHG [z],ECX ; | MOV EAX,[y] | MOV EAX,[y] | MOV EAX,[z] ; | | MOV EBX,[z] | MOV EBX,[a] ; forall (2:EAX=1 /\ 3:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: movl $1,%r9d _litmus_P3_1_: xchgl %r9d,(%rdi) _litmus_P3_2_: movl (%rdi),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,%r9d _litmus_P2_1_: xchgl %r9d,(%r8) _litmus_P2_2_: movl (%r8),%eax _litmus_P2_3_: movl (%rdi),%edx Test X005-A Required Histogram (15 states) 43231 :>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 317069:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 1090090:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 755094:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 557335:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 886757:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 1197836:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 266889:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 105434:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; 148688:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 733060:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 137928:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 1682902:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 774399:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; 1303288:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ 3:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is validated Hash=ee0914af073fd1e9574152b18726732c Time X005-A 9.65 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X006-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X006-A "Fre PodWW Wse Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV ECX,$2 | MOV ECX,$1 ; MOV [x],$1 | XCHG [x],ECX | XCHG [y],ECX ; | MOV EAX,[x] | MOV EAX,[y] ; | MOV EBX,[y] | MOV EBX,[z] ; forall (2:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,%r9d _litmus_P2_1_: xchgl %r9d,(%r8) _litmus_P2_2_: movl (%r8),%eax _litmus_P2_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) _litmus_P1_0_: movl $2,%r9d _litmus_P1_1_: xchgl %r9d,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx Test X006-A Required Histogram (10 states) 590071:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 73317 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 1768721:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 33428 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 2247916:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 83995 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 534820:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 976328:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 1305359:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 2386045:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=1345e69cc2325331e3a1b8b320054122 Time X006-A 7.04 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X007-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X007-A "Fre PodWR Fre PodWW Wse Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV EBX,$1 | MOV [x],$1 | MOV ECX,$2 | MOV ECX,$1 ; XCHG [a],EBX | MOV [y],$1 | XCHG [y],ECX | XCHG [z],ECX ; MOV EAX,[x] | | MOV EAX,[y] | MOV EAX,[z] ; | | MOV EBX,[z] | MOV EBX,[a] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,%r9d _litmus_P3_1_: xchgl %r9d,(%rdi) _litmus_P3_2_: movl (%rdi),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,%r9d _litmus_P2_1_: xchgl %r9d,(%r8) _litmus_P2_2_: movl (%r8),%eax _litmus_P2_3_: movl (%rdi),%edx Test X007-A Required Histogram (22 states) 2445 :>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 58106 :>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 556795:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 11262 :>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 67157 :>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 348609:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 847800:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 9398 :>0:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 22225 :>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 1037840:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 1124916:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 71390 :>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 41822 :>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 806349:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 218778:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 140807:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=2; 102083:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 1519622:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 156792:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 761942:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 730033:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; 1363829:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) is validated Hash=11c66617a98c55b243f451928a542074 Time X007-A 9.64 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X008-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X008-A "Fre PodWW Wse PodWW Wse Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV ECX,$2 | MOV ECX,$1 ; MOV [x],$1 | MOV [y],$1 | XCHG [y],ECX | XCHG [z],ECX ; | | MOV EAX,[y] | MOV EAX,[z] ; | | MOV EBX,[z] | MOV EBX,[a] ; forall (3:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: movl $1,%r9d _litmus_P3_1_: xchgl %r9d,(%rdi) _litmus_P3_2_: movl (%rdi),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,%r9d _litmus_P2_1_: xchgl %r9d,(%r8) _litmus_P2_2_: movl (%r8),%eax _litmus_P2_3_: movl (%rdi),%edx Test X008-A Required Histogram (22 states) 1440 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 382101:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 53605 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 625063:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 15176 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 949202:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 22818 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 133474:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 58954 :>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 12386 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 467559:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 8410 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 1497508:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 57923 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 834918:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 83710 :>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 1540844:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 723138:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 1165740:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 161750:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 232270:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 972011:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is validated Hash=f768962698062ec5a088ed852b5b4eaa Time X008-A 9.97 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X009-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X009-A "Fre PodWW Rfi PodRR Fre Rfi PodRR" {} P0 | P1 ; MOV ECX,$1 | MOV ECX,$1 ; XCHG [z],ECX | XCHG [y],ECX ; MOV [x],$1 | MOV EAX,[y] ; MOV EAX,[x] | MOV EBX,[z] ; MOV EBX,[y] | ; forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: movl $1,%r9d _litmus_P1_1_: xchgl %r9d,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,%r10d _litmus_P0_1_: xchgl %r10d,(%rdi) _litmus_P0_2_: movl $1,(%r9) _litmus_P0_3_: movl (%r9),%eax _litmus_P0_4_: movl (%r8),%edx Test X009-A Required Histogram (3 states) 7950163:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 7989624:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 4060213:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) is validated Hash=2e1546eb7066c1571030a20330fe3344 Time X009-A 7.67 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X010-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X010-A "Fre PodWR Fre PodWW Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV EBX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [a],EBX | XCHG [x],ECX | XCHG [z],ECX ; MOV EAX,[x] | MOV [y],$1 | MOV EAX,[z] ; | MOV EAX,[y] | MOV EBX,[a] ; | MOV EBX,[z] | ; forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,%r9d _litmus_P2_1_: xchgl %r9d,(%rdi) _litmus_P2_2_: movl (%rdi),%eax _litmus_P2_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,%r10d _litmus_P1_1_: xchgl %r10d,(%r9) _litmus_P1_2_: movl $1,(%r8) _litmus_P1_3_: movl (%r8),%eax _litmus_P1_4_: movl (%rdi),%edx Test X010-A Required Histogram (7 states) 704166:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 819378:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2237833:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 716965:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2162979:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2440801:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 917878:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=12b51efc6539ff6eee28c487aa964fe4 Time X010-A 7.68 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X011-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X011-A "Fre PodWW Wse PodWW Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV ECX,$2 | MOV ECX,$1 ; MOV [x],$1 | XCHG [x],ECX | XCHG [z],ECX ; | MOV [y],$1 | MOV EAX,[z] ; | MOV EAX,[y] | MOV EBX,[a] ; | MOV EBX,[z] | ; forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: movl $1,%r9d _litmus_P2_1_: xchgl %r9d,(%rdi) _litmus_P2_2_: movl (%rdi),%eax _litmus_P2_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,%r10d _litmus_P1_1_: xchgl %r10d,(%r9) _litmus_P1_2_: movl $1,(%r8) _litmus_P1_3_: movl (%r8),%eax _litmus_P1_4_: movl (%rdi),%edx Test X011-A Required Histogram (7 states) 641142:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 2097082:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 2156529:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 502693:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 928648:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 1008553:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 2665353:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is validated Hash=3595d429fbe03e2a1f53c46b5abe64e9 Time X011-A 7.78 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X012-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X012-A "Fre PodWR Fre Rfi PodRR" {} P0 | P1 ; MOV EBX,$1 | MOV ECX,$1 ; XCHG [y],EBX | XCHG [x],ECX ; MOV EAX,[x] | MOV EAX,[x] ; | MOV EBX,[y] ; forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: movl $1,%r9d _litmus_P1_1_: xchgl %r9d,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rcx) _litmus_P0_2_: movl (%rsi),%eax Test X012-A Required Histogram (3 states) 7817853:>0:EAX=1; 1:EAX=1; 1:EBX=0; 8173079:>0:EAX=0; 1:EAX=1; 1:EBX=1; 4009068:>0:EAX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) is validated Hash=e90c537cfca5daea67b1e6f1c8409f39 Time X012-A 6.97 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X013-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X013-A "Fre PodWR Fre Rfi PodRR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV EBX,$1 | MOV ECX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [a],EBX | XCHG [x],ECX | XCHG [y],EBX | XCHG [z],ECX ; MOV EAX,[x] | MOV EAX,[x] | MOV EAX,[z] | MOV EAX,[z] ; | MOV EBX,[y] | | MOV EBX,[a] ; forall (1:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,%r9d _litmus_P3_1_: xchgl %r9d,(%rdi) _litmus_P3_2_: movl (%rdi),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,%r9d _litmus_P1_1_: xchgl %r9d,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx _litmus_P2_0_: movl $1,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax Test X013-A Required Histogram (15 states) 85956 :>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 102069:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 546915:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 96864 :>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1176583:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 556378:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1113432:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 99666 :>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 525885:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1308131:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1090388:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 572249:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1179777:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1168547:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 377160:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is validated Hash=000107c0a889d6e0cc889df7b671aa24 Time X013-A 9.48 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X014-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X014-A "Fre PodWW Wse Rfi PodRR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV ECX,$2 | MOV EBX,$1 | MOV ECX,$1 ; MOV [x],$1 | XCHG [x],ECX | XCHG [y],EBX | XCHG [z],ECX ; | MOV EAX,[x] | MOV EAX,[z] | MOV EAX,[z] ; | MOV EBX,[y] | | MOV EBX,[a] ; forall (3:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,%r9d _litmus_P3_1_: xchgl %r9d,(%rdi) _litmus_P3_2_: movl (%rdi),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,%r9d _litmus_P1_1_: xchgl %r9d,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx _litmus_P2_0_: movl $1,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax Test X014-A Required Histogram (22 states) 59994 :>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 10686 :>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 344231:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 6811 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 1029681:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 64632 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 741830:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 2188 :>1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 564984:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 66839 :>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 859668:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 18069 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 1077866:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 41660 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 215674:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 104407:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 136825:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 739375:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 112122:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 1742043:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 668060:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 1392355:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is validated Hash=99a6bfb0c3a28feb1e4d3d8a242659f4 Time X014-A 9.68 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X015-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X015-A "Fre PodWW Rfi PodRR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV ECX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [a],ECX | XCHG [y],EBX | XCHG [z],ECX ; MOV [x],$1 | MOV EAX,[z] | MOV EAX,[z] ; MOV EAX,[x] | | MOV EBX,[a] ; MOV EBX,[y] | | ; forall (0:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,%r9d _litmus_P2_1_: xchgl %r9d,(%rdi) _litmus_P2_2_: movl (%rdi),%eax _litmus_P2_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,%r10d _litmus_P0_1_: xchgl %r10d,(%r9) _litmus_P0_2_: movl $1,(%r8) _litmus_P0_3_: movl (%r8),%eax _litmus_P0_4_: movl (%rdi),%edx _litmus_P1_0_: movl $1,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax Test X015-A Required Histogram (7 states) 878211:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 670216:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 2307936:>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 756230:>0:EAX=1; 0:EBX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2403267:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2128146:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 855994:>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) is validated Hash=2e858fabf5475afd2ef34b83c9b474ab Time X015-A 7.73 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X016-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X016-A "Fre PodWR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV EBX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [z],EBX | XCHG [x],EBX | XCHG [y],ECX ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[y] ; | | MOV EBX,[z] ; forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,%r9d _litmus_P2_1_: xchgl %r9d,(%r8) _litmus_P2_2_: movl (%r8),%eax _litmus_P2_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rcx) _litmus_P0_2_: movl (%rsi),%eax _litmus_P1_0_: movl $1,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax Test X016-A Required Histogram (7 states) 805852:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 801901:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 2132139:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 859625:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2309144:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2329630:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 761709:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) is validated Hash=76d4212e1d289a38477a5ca18acb6cd9 Time X016-A 6.94 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X017-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X017-A "Fre PodWR Fre PodWR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [a],EBX | XCHG [x],EBX | XCHG [y],EBX | XCHG [z],ECX ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,%r9d _litmus_P3_1_: xchgl %r9d,(%rdi) _litmus_P3_2_: movl (%rdi),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax Test X017-A Required Histogram (15 states) 88763 :>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 87998 :>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 528519:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 81459 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1272384:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 528080:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1045091:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 80259 :>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 548808:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1367132:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1129335:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 555142:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1178263:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1165884:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 342883:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is validated Hash=632a6f76bb60b325d2cd3a8e52250153 Time X017-A 9.27 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X018-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X018-A "Fre PodWW Wse PodWR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV EBX,$2 | MOV EBX,$1 | MOV ECX,$1 ; MOV [x],$1 | XCHG [x],EBX | XCHG [y],EBX | XCHG [z],ECX ; | MOV EAX,[y] | MOV EAX,[z] | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: movl $1,%r9d _litmus_P3_1_: xchgl %r9d,(%rdi) _litmus_P3_2_: movl (%rdi),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax Test X018-A Required Histogram (15 states) 59110 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 372260:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 1034257:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 779931:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 648670:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 989184:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 1147611:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 224570:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 121751:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 154270:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 694684:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 198379:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 1579526:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 830291:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 1165506:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is validated Hash=a3e1e59b0b412af9c54bf2f107cb5efd Time X018-A 9.42 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X019-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X019-A "Fre PodWW Wse PodWR Fre Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV EBX,$2 | MOV ECX,$1 ; MOV [x],$1 | XCHG [x],EBX | XCHG [y],ECX ; | MOV EAX,[y] | MOV EAX,[y] ; | | MOV EBX,[z] ; forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: movl $1,%r9d _litmus_P2_1_: xchgl %r9d,(%r8) _litmus_P2_2_: movl (%r8),%eax _litmus_P2_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) _litmus_P1_0_: movl $2,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax Test X019-A Required Histogram (7 states) 691606:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 1807502:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 2314808:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 495085:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 1005933:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 1260725:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 2424341:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is validated Hash=2c24277fb498028559e35bf88ff5cb70 Time X019-A 6.85 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X020-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X020-A "Fre PodWR Fre PodWW Wse PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV EBX,$1 | MOV [x],$1 | MOV EBX,$2 | MOV ECX,$1 ; XCHG [a],EBX | MOV [y],$1 | XCHG [y],EBX | XCHG [z],ECX ; MOV EAX,[x] | | MOV EAX,[z] | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) Generated assembler _litmus_P3_0_: movl $1,%r9d _litmus_P3_1_: xchgl %r9d,(%rdi) _litmus_P3_2_: movl (%rdi),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax Test X020-A Required Histogram (15 states) 52369 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 563214:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 339833:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 878573:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 1135799:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 1150826:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 814902:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 232551:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 156576:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 99437 :>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 1670895:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 166505:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 769129:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 724623:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 1244768:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) is validated Hash=7d3d8fa0c0796e5c2345821d4de2bb5e Time X020-A 9.48 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X021-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X021-A "Fre PodWW Wse PodWW Wse PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV EBX,$2 | MOV ECX,$1 ; MOV [x],$1 | MOV [y],$1 | XCHG [y],EBX | XCHG [z],ECX ; | | MOV EAX,[z] | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) Generated assembler _litmus_P3_0_: movl $1,%r9d _litmus_P3_1_: xchgl %r9d,(%rdi) _litmus_P3_2_: movl (%rdi),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax Test X021-A Required Histogram (15 states) 370096:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 672379:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 956374:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 142447:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 69458 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 538548:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 1519442:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 955274:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 91043 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 1303462:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 833047:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 1172516:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 171778:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 260983:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 943153:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) is validated Hash=7c01ca60211864faeafde39cb89244e6 Time X021-A 9.61 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X022-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X022-A "Fre PodWW Wse Rfi PodRR" {} P0 | P1 ; MOV [y],$1 | MOV ECX,$2 ; MOV [x],$1 | XCHG [x],ECX ; | MOV EAX,[x] ; | MOV EBX,[y] ; forall (1:EAX=2 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1) \/ 1:EAX=1 /\ 1:EBX=1 /\ x=1) Generated assembler _litmus_P1_0_: movl $2,%r9d _litmus_P1_1_: xchgl %r9d,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X022-A Required Histogram (4 states) 8274214:>1:EAX=2; 1:EBX=0; x=1; 248125:>1:EAX=1; 1:EBX=1; x=1; 1580505:>1:EAX=2; 1:EBX=1; x=1; 9897156:>1:EAX=2; 1:EBX=1; x=2; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (1:EAX=2 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1) \/ 1:EAX=1 /\ 1:EBX=1 /\ x=1) is validated Hash=6d48a55cd24acd1a38931bd11259eea8 Time X022-A 6.69 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X023-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X023-A "Fre PodWW Wse Rfi PodRR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV ECX,$2 | MOV [y],$1 | MOV ECX,$2 ; MOV [x],$1 | XCHG [x],ECX | MOV [z],$1 | XCHG [z],ECX ; | MOV EAX,[x] | | MOV EAX,[z] ; | MOV EBX,[y] | | MOV EBX,[a] ; forall (1:EAX=2 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) Generated assembler _litmus_P3_0_: movl $2,%r9d _litmus_P3_1_: xchgl %r9d,(%rdi) _litmus_P3_2_: movl (%rdi),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,%r9d _litmus_P1_1_: xchgl %r9d,(%r8) _litmus_P1_2_: movl (%r8),%eax _litmus_P1_3_: movl (%rdi),%edx _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X023-A Required Histogram (32 states) 7079 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 305 :>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 15428 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 6364 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 988358:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 59212 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 838037:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 343 :>1:EAX=1; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 60415 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 3266 :>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 24189 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 13913 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 707070:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 23143 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 72497 :>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 2376 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 102055:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 684821:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 13520 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 61028 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 501093:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 921581:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 117208:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 12052 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 569223:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 2505 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 750596:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 66629 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 981832:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 168917:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 180802:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 2044143:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=2 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) is validated Hash=4826bad8aca5a6ea17cb5d51245c0145 Time X023-A 9.89 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X024-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X024-A "Fre PodWW Rfi PodRR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 ; MOV ECX,$1 | MOV [y],$1 | MOV ECX,$2 ; XCHG [a],ECX | MOV [z],$1 | XCHG [z],ECX ; MOV [x],$1 | | MOV EAX,[z] ; MOV EAX,[x] | | MOV EBX,[a] ; MOV EBX,[y] | | ; forall (0:EAX=1 /\ (0:EBX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ (z=2 \/ z=1)) \/ 2:EAX=1 /\ z=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ z=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ z=1))) Generated assembler _litmus_P2_0_: movl $2,%r9d _litmus_P2_1_: xchgl %r9d,(%rdi) _litmus_P2_2_: movl (%rdi),%eax _litmus_P2_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,%r10d _litmus_P0_1_: xchgl %r10d,(%r9) _litmus_P0_2_: movl $1,(%r8) _litmus_P0_3_: movl (%r8),%eax _litmus_P0_4_: movl (%rdi),%edx _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X024-A Required Histogram (10 states) 28869 :>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=0; z=1; 595071:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=0; z=1; 2235966:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=1; 107300:>0:EAX=1; 0:EBX=0; 2:EAX=1; 2:EBX=1; z=1; 86163 :>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=1; z=1; 1873684:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=1; 426347:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=1; 1217823:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=2; 966538:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=2; 2462239:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (0:EBX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ (z=2 \/ z=1)) \/ 2:EAX=1 /\ z=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ z=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ z=1))) is validated Hash=0f51ae9b6dc892e8eaea14ac0a50b2e7 Time X024-A 7.76 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X025-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X025-A "Fre PodWR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 ; MOV EBX,$1 | MOV [x],$1 | MOV ECX,$2 ; XCHG [z],EBX | MOV [y],$1 | XCHG [y],ECX ; MOV EAX,[x] | | MOV EAX,[y] ; | | MOV EBX,[z] ; forall (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ y=1)) Generated assembler _litmus_P2_0_: movl $2,%r9d _litmus_P2_1_: xchgl %r9d,(%r8) _litmus_P2_2_: movl (%r8),%eax _litmus_P2_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rcx) _litmus_P0_2_: movl (%rsi),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X025-A Required Histogram (10 states) 34710 :>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 608058:>0:EAX=0; 2:EAX=2; 2:EBX=0; y=1; 2223097:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=1; 102963:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 97494 :>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 1943012:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=1; 350953:>0:EAX=1; 2:EAX=2; 2:EBX=1; y=1; 1177145:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=2; 1008139:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=2; 2454429:>0:EAX=1; 2:EAX=2; 2:EBX=1; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ y=1)) is validated Hash=3742d8e2be68a0408c568cb4135390f6 Time X025-A 6.84 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X026-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X026-A "Fre PodWR Fre PodWR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV EBX,$1 | MOV EBX,$1 | MOV [y],$1 | MOV ECX,$2 ; XCHG [a],EBX | XCHG [x],EBX | MOV [z],$1 | XCHG [z],ECX ; MOV EAX,[x] | MOV EAX,[y] | | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (0:EAX=1 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) Generated assembler _litmus_P3_0_: movl $2,%r9d _litmus_P3_1_: xchgl %r9d,(%rdi) _litmus_P3_2_: movl (%rdi),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X026-A Required Histogram (22 states) 7697 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 3168 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 23783 :>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 60224 :>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 1073060:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 593253:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 1054134:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 13890 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 83498 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 80602 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 42736 :>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 375664:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 831241:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 827915:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 166893:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 131990:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=2; 151017:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 674122:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 128745:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 747268:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 1768031:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; 1161069:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) is validated Hash=b16a5826afc16c1f7de0ca7bec7720f5 Time X026-A 9.47 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X027-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X027-A "Fre PodWW Wse PodWR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV EBX,$2 | MOV [y],$1 | MOV ECX,$2 ; MOV [x],$1 | XCHG [x],EBX | MOV [z],$1 | XCHG [z],ECX ; | MOV EAX,[y] | | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) Generated assembler _litmus_P3_0_: movl $2,%r9d _litmus_P3_1_: xchgl %r9d,(%rdi) _litmus_P3_2_: movl (%rdi),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X027-A Required Histogram (22 states) 5702 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 12777 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 938560:>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 804624:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 62870 :>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 25684 :>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 725962:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 91590 :>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 3199 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 96408 :>1:EAX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 780224:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 13713 :>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 68817 :>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 483008:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 915574:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 105372:>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 511198:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 807225:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 1025182:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 180938:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 202152:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 2139221:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) is validated Hash=29b4ac7960ab32dc3ad11844b505b7c0 Time X027-A 9.58 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X028-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X028-A "Fre PodWW Wse PodWW Wse Rfi PodRR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$2 | MOV ECX,$2 ; MOV [x],$1 | MOV [y],$1 | XCHG [y],ECX ; | | MOV EAX,[y] ; | | MOV EBX,[z] ; forall (2:EAX=2 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) Generated assembler _litmus_P2_0_: movl $2,%r9d _litmus_P2_1_: xchgl %r9d,(%r8) _litmus_P2_2_: movl (%r8),%eax _litmus_P2_3_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X028-A Required Histogram (10 states) 32846 :>2:EAX=1; 2:EBX=0; x=1; y=1; 2013223:>2:EAX=2; 2:EBX=0; x=1; y=1; 65609 :>2:EAX=1; 2:EBX=1; x=1; y=1; 148645:>2:EAX=2; 2:EBX=1; x=1; y=1; 843884:>2:EAX=2; 2:EBX=0; x=2; y=1; 79426 :>2:EAX=1; 2:EBX=1; x=2; y=1; 1962056:>2:EAX=2; 2:EBX=1; x=2; y=1; 951824:>2:EAX=2; 2:EBX=0; x=1; y=2; 2405837:>2:EAX=2; 2:EBX=1; x=1; y=2; 1496650:>2:EAX=2; 2:EBX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=2 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) is validated Hash=56a57b02101cc0d563114939b23f6661 Time X028-A 7.05 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X029-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X029-A "Fre PodWR Fre PodWW Wse PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV EBX,$1 | MOV [x],$1 | MOV [y],$2 | MOV ECX,$2 ; XCHG [a],EBX | MOV [y],$1 | MOV [z],$1 | XCHG [z],ECX ; MOV EAX,[x] | | | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (0:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1))) Generated assembler _litmus_P3_0_: movl $2,%r9d _litmus_P3_1_: xchgl %r9d,(%rdi) _litmus_P3_2_: movl (%rdi),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X029-A Required Histogram (22 states) 1428 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 16271 :>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 366844:>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=1; 929129:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=1; 56425 :>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 21269 :>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 694097:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=1; 94889 :>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=1; 9817 :>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 71358 :>0:EAX=0; 3:EAX=2; 3:EBX=0; y=2; z=1; 1552018:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=1; 13941 :>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 55392 :>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 504507:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=1; 749466:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=1; 77389 :>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=2; 756615:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=2; 1466503:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=2; 1172521:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=2; 275935:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=2; 158699:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=2; 955487:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1))) is validated Hash=1bd42981e49aeb628a0d3031c156823a Time X029-A 9.51 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X030-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X030-A "Fre PodWW Wse PodWW Wse PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV ECX,$2 ; MOV [x],$1 | MOV [y],$1 | MOV [z],$1 | XCHG [z],ECX ; | | | MOV EAX,[z] ; | | | MOV EBX,[a] ; forall (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) Generated assembler _litmus_P3_0_: movl $2,%r9d _litmus_P3_1_: xchgl %r9d,(%rdi) _litmus_P3_2_: movl (%rdi),%eax _litmus_P3_3_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X030-A Required Histogram (22 states) 14807 :>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 681398:>3:EAX=2; 3:EBX=0; x=1; y=1; z=1; 20719 :>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 38453 :>3:EAX=2; 3:EBX=1; x=1; y=1; z=1; 2536 :>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 611321:>3:EAX=2; 3:EBX=0; x=2; y=1; z=1; 56656 :>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 727261:>3:EAX=2; 3:EBX=1; x=2; y=1; z=1; 4602 :>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 1271034:>3:EAX=2; 3:EBX=0; x=1; y=2; z=1; 60785 :>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 825984:>3:EAX=2; 3:EBX=1; x=1; y=2; z=1; 136209:>3:EAX=2; 3:EBX=0; x=2; y=2; z=1; 20911 :>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 701527:>3:EAX=2; 3:EBX=1; x=2; y=2; z=1; 525700:>3:EAX=2; 3:EBX=0; x=1; y=1; z=2; 941589:>3:EAX=2; 3:EBX=1; x=1; y=1; z=2; 131664:>3:EAX=2; 3:EBX=0; x=2; y=1; z=2; 1823455:>3:EAX=2; 3:EBX=1; x=2; y=1; z=2; 147277:>3:EAX=2; 3:EBX=0; x=1; y=2; z=2; 952180:>3:EAX=2; 3:EBX=1; x=1; y=2; z=2; 303932:>3:EAX=2; 3:EBX=1; x=2; y=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) is validated Hash=c45bb4a7f98ccd7cf7323cbfc1c8698d Time X030-A 9.96 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X031-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X031-A "Fre PodWW Rfi PodRR Fre PodWW Rfi PodRR" {} P0 | P1 ; MOV ECX,$1 | MOV ECX,$1 ; XCHG [a],ECX | XCHG [y],ECX ; MOV [x],$1 | MOV [z],$1 ; MOV EAX,[x] | MOV EAX,[z] ; MOV EBX,[y] | MOV EBX,[a] ; forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: movl $1,%r10d _litmus_P1_1_: xchgl %r10d,(%r8) _litmus_P1_2_: movl $1,(%rdi) _litmus_P1_3_: movl (%rdi),%eax _litmus_P1_4_: movl (%r9),%edx _litmus_P0_0_: movl $1,%r10d _litmus_P0_1_: xchgl %r10d,(%r9) _litmus_P0_2_: movl $1,(%r8) _litmus_P0_3_: movl (%r8),%eax _litmus_P0_4_: movl (%rdi),%edx Test X031-A Required Histogram (3 states) 8313427:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 8838635:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2847938:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) is validated Hash=16270364e97530dcdfa1fdff3648caa9 Time X031-A 8.34 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X032-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X032-A "Fre PodWR Fre PodWW Rfi PodRR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV EBX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [b],EBX | XCHG [x],ECX | XCHG [z],ECX ; MOV EAX,[x] | MOV [y],$1 | MOV [a],$1 ; | MOV EAX,[y] | MOV EAX,[a] ; | MOV EBX,[z] | MOV EBX,[b] ; forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,%r10d _litmus_P2_1_: xchgl %r10d,(%rdi) _litmus_P2_2_: movl $1,(%r9) _litmus_P2_3_: movl (%r9),%eax _litmus_P2_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,%r10d _litmus_P1_1_: xchgl %r10d,(%r9) _litmus_P1_2_: movl $1,(%r8) _litmus_P1_3_: movl (%r8),%eax _litmus_P1_4_: movl (%rdi),%edx Test X032-A Required Histogram (7 states) 622611:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 738570:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2231448:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 661896:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2261033:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2702394:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 782048:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=941731ddaa61c31d88847cbd8cdcd3bb Time X032-A 8.35 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X033-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X033-A "Fre PodWW Wse PodWW Rfi PodRR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV [b],$1 | MOV ECX,$2 | MOV ECX,$1 ; MOV [x],$1 | XCHG [x],ECX | XCHG [z],ECX ; | MOV [y],$1 | MOV [a],$1 ; | MOV EAX,[y] | MOV EAX,[a] ; | MOV EBX,[z] | MOV EBX,[b] ; forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: movl $1,%r10d _litmus_P2_1_: xchgl %r10d,(%rdi) _litmus_P2_2_: movl $1,(%r9) _litmus_P2_3_: movl (%r9),%eax _litmus_P2_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,%r10d _litmus_P1_1_: xchgl %r10d,(%r9) _litmus_P1_2_: movl $1,(%r8) _litmus_P1_3_: movl (%r8),%eax _litmus_P1_4_: movl (%rdi),%edx Test X033-A Required Histogram (7 states) 527956:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 2019986:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 2376636:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 509924:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 930265:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 945748:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 2689485:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is validated Hash=afbee5abc8de14ba2f28fa6bb21a7db5 Time X033-A 8.22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X034-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X034-A "Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 ; MOV EBX,$1 | MOV ECX,$1 ; XCHG [z],EBX | XCHG [x],ECX ; MOV EAX,[x] | MOV [y],$1 ; | MOV EAX,[y] ; | MOV EBX,[z] ; forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: movl $1,%r10d _litmus_P1_1_: xchgl %r10d,(%r9) _litmus_P1_2_: movl $1,(%r8) _litmus_P1_3_: movl (%r8),%eax _litmus_P1_4_: movl (%rdi),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rcx) _litmus_P0_2_: movl (%rsi),%eax Test X034-A Required Histogram (3 states) 7906906:>0:EAX=1; 1:EAX=1; 1:EBX=0; 8096454:>0:EAX=0; 1:EAX=1; 1:EBX=1; 3996640:>0:EAX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) is validated Hash=a71d3055845a53427e1c46170b07fba0 Time X034-A 7.41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X035-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X035-A "Fre PodWR Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV EBX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [a],EBX | XCHG [x],EBX | XCHG [y],ECX ; MOV EAX,[x] | MOV EAX,[y] | MOV [z],$1 ; | | MOV EAX,[z] ; | | MOV EBX,[a] ; forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: movl $1,%r10d _litmus_P2_1_: xchgl %r10d,(%r8) _litmus_P2_2_: movl $1,(%rdi) _litmus_P2_3_: movl (%rdi),%eax _litmus_P2_4_: movl (%r9),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax Test X035-A Required Histogram (7 states) 790500:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 761787:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 2197392:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 799887:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2416275:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2314228:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 719931:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) is validated Hash=fb11d0565c5f2d21dbd31ad3db8b3c75 Time X035-A 7.48 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X036-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X036-A "Fre PodWR Fre PodWR Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [b],EBX | XCHG [x],EBX | XCHG [y],EBX | XCHG [z],ECX ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: movl $1,%r10d _litmus_P3_1_: xchgl %r10d,(%rdi) _litmus_P3_2_: movl $1,(%r9) _litmus_P3_3_: movl (%r9),%eax _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax Test X036-A Required Histogram (15 states) 58462 :>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 88845 :>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 488814:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 80841 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1172462:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 495964:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1090659:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 102144:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 549819:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1319323:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1149335:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 604856:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1302974:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1155743:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 339759:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is validated Hash=83424690d292e02e867dbe60c4998283 Time X036-A 10.19 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X037-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X037-A "Fre PodWW Wse PodWR Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV EBX,$2 | MOV EBX,$1 | MOV ECX,$1 ; MOV [x],$1 | XCHG [x],EBX | XCHG [y],EBX | XCHG [z],ECX ; | MOV EAX,[y] | MOV EAX,[z] | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: movl $1,%r10d _litmus_P3_1_: xchgl %r10d,(%rdi) _litmus_P3_2_: movl $1,(%r9) _litmus_P3_3_: movl (%r9),%eax _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax Test X037-A Required Histogram (15 states) 44183 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 309607:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 948744:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 789067:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 708026:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 1098943:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 1138076:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 225803:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 92930 :>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 137267:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 666995:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 205921:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 1700764:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 753631:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 1180043:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is validated Hash=7a5da725bf0cdfb6bec05d5ea7b8be1f Time X037-A 10.14 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X038-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X038-A "Fre PodWW Wse PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV EBX,$2 | MOV ECX,$1 ; MOV [x],$1 | XCHG [x],EBX | XCHG [y],ECX ; | MOV EAX,[y] | MOV [z],$1 ; | | MOV EAX,[z] ; | | MOV EBX,[a] ; forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: movl $1,%r10d _litmus_P2_1_: xchgl %r10d,(%r8) _litmus_P2_2_: movl $1,(%rdi) _litmus_P2_3_: movl (%rdi),%eax _litmus_P2_4_: movl (%r9),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax Test X038-A Required Histogram (7 states) 535828:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 2003043:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 2390168:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 485644:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 918105:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 1250357:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 2416855:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is validated Hash=73367c44b7ce02728ac738b10763c37b Time X038-A 7.36 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X039-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X039-A "Fre PodWR Fre PodWW Wse PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV EBX,$1 | MOV [x],$1 | MOV EBX,$2 | MOV ECX,$1 ; XCHG [b],EBX | MOV [y],$1 | XCHG [y],EBX | XCHG [z],ECX ; MOV EAX,[x] | | MOV EAX,[z] | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) Generated assembler _litmus_P3_0_: movl $1,%r10d _litmus_P3_1_: xchgl %r10d,(%rdi) _litmus_P3_2_: movl $1,(%r9) _litmus_P3_3_: movl (%r9),%eax _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax Test X039-A Required Histogram (15 states) 40964 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 466055:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 320927:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 934789:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 1228878:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 1186152:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 813453:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 236538:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 111324:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 85111 :>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 1546964:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 160932:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 804598:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 723088:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 1340227:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) is validated Hash=e321183141b28e5444d23da576d1a27a Time X039-A 10.36 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X040-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X040-A "Fre PodWW Wse PodWW Wse PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$2 | MOV EBX,$2 | MOV ECX,$1 ; MOV [x],$1 | MOV [y],$1 | XCHG [y],EBX | XCHG [z],ECX ; | | MOV EAX,[z] | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) Generated assembler _litmus_P3_0_: movl $1,%r10d _litmus_P3_1_: xchgl %r10d,(%rdi) _litmus_P3_2_: movl $1,(%r9) _litmus_P3_3_: movl (%r9),%eax _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax Test X040-A Required Histogram (15 states) 369004:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 724844:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 1023064:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 136275:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 66580 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 494195:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 1452399:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 994661:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 90147 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 1287920:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 827669:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 1181055:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 155677:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 255062:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 941448:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) is validated Hash=38df24bb802ee8f42ae051eaa808d685 Time X040-A 10.55 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X041-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X041-A "Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 ; MOV [z],$1 | MOV ECX,$2 ; MOV [x],$1 | XCHG [x],ECX ; | MOV [y],$1 ; | MOV EAX,[y] ; | MOV EBX,[z] ; forall (1:EAX=1 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1)) Generated assembler _litmus_P1_0_: movl $2,%r10d _litmus_P1_1_: xchgl %r10d,(%r9) _litmus_P1_2_: movl $1,(%r8) _litmus_P1_3_: movl (%r8),%eax _litmus_P1_4_: movl (%rdi),%edx _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X041-A Required Histogram (3 states) 8151906:>1:EAX=1; 1:EBX=0; x=1; 1988507:>1:EAX=1; 1:EBX=1; x=1; 9859587:>1:EAX=1; 1:EBX=1; x=2; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (1:EAX=1 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1)) is validated Hash=60357633e7cc30e478ac6523445c61a0 Time X041-A 7.14 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X042-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X042-A "Fre PodWR Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV EBX,$1 | MOV [x],$1 | MOV ECX,$2 ; XCHG [a],EBX | MOV [y],$1 | XCHG [y],ECX ; MOV EAX,[x] | | MOV [z],$1 ; | | MOV EAX,[z] ; | | MOV EBX,[a] ; forall (2:EAX=1 /\ (0:EAX=1 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 0:EAX=0 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1))) Generated assembler _litmus_P2_0_: movl $2,%r10d _litmus_P2_1_: xchgl %r10d,(%r8) _litmus_P2_2_: movl $1,(%rdi) _litmus_P2_3_: movl (%rdi),%eax _litmus_P2_4_: movl (%r9),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X042-A Required Histogram (7 states) 579878:>0:EAX=0; 2:EAX=1; 2:EBX=0; y=1; 2316287:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 1992297:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 428581:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 1094436:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=2; 1077436:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=2; 2511085:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (0:EAX=1 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 0:EAX=0 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1))) is validated Hash=b1c6277d958031a8444cc5e520dafbe8 Time X042-A 7.39 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X043-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X043-A "Fre PodWR Fre PodWR Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV EBX,$1 | MOV EBX,$1 | MOV [y],$1 | MOV ECX,$2 ; XCHG [b],EBX | XCHG [x],EBX | MOV [z],$1 | XCHG [z],ECX ; MOV EAX,[x] | MOV EAX,[y] | | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1)))) Generated assembler _litmus_P3_0_: movl $2,%r10d _litmus_P3_1_: xchgl %r10d,(%rdi) _litmus_P3_2_: movl $1,(%r9) _litmus_P3_3_: movl (%r9),%eax _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X043-A Required Histogram (15 states) 53904 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 967785:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 601718:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 1062926:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 325964:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 835948:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 1023352:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 214548:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 145458:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=2; 141403:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 627791:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 117874:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 807978:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 1819808:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; 1253543:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1)))) is validated Hash=11f178ba0712bf2dfe62f26c001e21f9 Time X043-A 10.22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X044-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X044-A "Fre PodWW Wse PodWR Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV EBX,$2 | MOV [y],$1 | MOV ECX,$2 ; MOV [x],$1 | XCHG [x],EBX | MOV [z],$1 | XCHG [z],ECX ; | MOV EAX,[y] | | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))))) Generated assembler _litmus_P3_0_: movl $2,%r10d _litmus_P3_1_: xchgl %r10d,(%rdi) _litmus_P3_2_: movl $1,(%r9) _litmus_P3_3_: movl (%r9),%eax _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X044-A Required Histogram (15 states) 905138:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 785646:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 854218:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 140912:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 86649 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=2; z=1; 742097:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 442541:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 1069403:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 90736 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=2; 375814:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=2; 843807:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=2; 1082400:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=2; 157790:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=2; 183912:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=2; 2238937:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))))) is validated Hash=4525d017f8e567b7650189c7b4d0c8f0 Time X044-A 10.02 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X045-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X045-A "Fre PodWW Wse PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 ; MOV [a],$1 | MOV [x],$2 | MOV ECX,$2 ; MOV [x],$1 | MOV [y],$1 | XCHG [y],ECX ; | | MOV [z],$1 ; | | MOV EAX,[z] ; | | MOV EBX,[a] ; forall (2:EAX=1 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) Generated assembler _litmus_P2_0_: movl $2,%r10d _litmus_P2_1_: xchgl %r10d,(%r8) _litmus_P2_2_: movl $1,(%rdi) _litmus_P2_3_: movl (%rdi),%eax _litmus_P2_4_: movl (%r9),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X045-A Required Histogram (7 states) 1986390:>2:EAX=1; 2:EBX=0; x=1; y=1; 210709:>2:EAX=1; 2:EBX=1; x=1; y=1; 852645:>2:EAX=1; 2:EBX=0; x=2; y=1; 2194267:>2:EAX=1; 2:EBX=1; x=2; y=1; 794266:>2:EAX=1; 2:EBX=0; x=1; y=2; 2527924:>2:EAX=1; 2:EBX=1; x=1; y=2; 1433799:>2:EAX=1; 2:EBX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) is validated Hash=128e873d99391f63b093bf7cbc9df3be Time X045-A 7.27 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X046-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X046-A "Fre PodWR Fre PodWW Wse PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV EBX,$1 | MOV [x],$1 | MOV [y],$2 | MOV ECX,$2 ; XCHG [b],EBX | MOV [y],$1 | MOV [z],$1 | XCHG [z],ECX ; MOV EAX,[x] | | | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (0:EAX=1 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))))) Generated assembler _litmus_P3_0_: movl $2,%r10d _litmus_P3_1_: xchgl %r10d,(%rdi) _litmus_P3_2_: movl $1,(%r9) _litmus_P3_3_: movl (%r9),%eax _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X046-A Required Histogram (15 states) 440413:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 980280:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 868067:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 125857:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 67155 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=2; z=1; 1336720:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 500950:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 890602:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 96492 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=2; 692991:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=2; 1517187:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=2; 1109467:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=2; 231958:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=2; 164067:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=2; 977794:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))))) is validated Hash=09c3fdd7375517b47ed822f3ecf04870 Time X046-A 10.31 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X047-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X047-A "Fre PodWW Wse PodWW Wse PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; MOV [b],$1 | MOV [x],$2 | MOV [y],$2 | MOV ECX,$2 ; MOV [x],$1 | MOV [y],$1 | MOV [z],$1 | XCHG [z],ECX ; | | | MOV [a],$1 ; | | | MOV EAX,[a] ; | | | MOV EBX,[b] ; forall (3:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))))) Generated assembler _litmus_P3_0_: movl $2,%r10d _litmus_P3_1_: xchgl %r10d,(%rdi) _litmus_P3_2_: movl $1,(%r9) _litmus_P3_3_: movl (%r9),%eax _litmus_P3_4_: movl (%r8),%edx _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X047-A Required Histogram (15 states) 701965:>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 61966 :>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 543195:>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 818381:>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 1242853:>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 915999:>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 119398:>3:EAX=1; 3:EBX=0; x=2; y=2; z=1; 769018:>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 477306:>3:EAX=1; 3:EBX=0; x=1; y=1; z=2; 973064:>3:EAX=1; 3:EBX=1; x=1; y=1; z=2; 108104:>3:EAX=1; 3:EBX=0; x=2; y=1; z=2; 1874878:>3:EAX=1; 3:EBX=1; x=2; y=1; z=2; 142457:>3:EAX=1; 3:EBX=0; x=1; y=2; z=2; 980874:>3:EAX=1; 3:EBX=1; x=1; y=2; z=2; 270542:>3:EAX=1; 3:EBX=1; x=2; y=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))))) is validated Hash=fe6ebf038184766141076d603283cf97 Time X047-A 10.58 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X048-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X048-A "Fre PodWR Fre PodWR" {} P0 | P1 ; MOV EBX,$1 | MOV EBX,$1 ; XCHG [y],EBX | XCHG [x],EBX ; MOV EAX,[x] | MOV EAX,[y] ; forall (0:EAX=1 /\ (1:EAX=1 \/ 1:EAX=0) \/ 0:EAX=0 /\ 1:EAX=1) Generated assembler _litmus_P1_0_: movl $1,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rcx) _litmus_P0_2_: movl (%rsi),%eax Test X048-A Required Histogram (3 states) 8218463:>0:EAX=1; 1:EAX=0; 8215046:>0:EAX=0; 1:EAX=1; 3566491:>0:EAX=1; 1:EAX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (0:EAX=1 /\ (1:EAX=1 \/ 1:EAX=0) \/ 0:EAX=0 /\ 1:EAX=1) is validated Hash=9663769e0c2741a1aa8145f9b9ce5ecb Time X048-A 6.61 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X049-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X049-A "Fre PodWR Fre PodWR Fre PodWR" {} P0 | P1 | P2 ; MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 ; XCHG [z],EBX | XCHG [x],EBX | XCHG [y],EBX ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] ; forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ (2:EAX=1 \/ 2:EAX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ 2:EAX=1)) Generated assembler _litmus_P2_0_: movl $1,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rcx) _litmus_P0_2_: movl (%rsi),%eax _litmus_P1_0_: movl $1,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax Test X049-A Required Histogram (7 states) 803930:>0:EAX=1; 1:EAX=0; 2:EAX=0; 807373:>0:EAX=0; 1:EAX=1; 2:EAX=0; 2294684:>0:EAX=1; 1:EAX=1; 2:EAX=0; 942759:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2354000:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2203728:>0:EAX=0; 1:EAX=1; 2:EAX=1; 593526:>0:EAX=1; 1:EAX=1; 2:EAX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ (2:EAX=1 \/ 2:EAX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ 2:EAX=1)) is validated Hash=896026d247b917eddc04f54a02273d38 Time X049-A 6.51 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X050-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X050-A "Fre PodWR Fre PodWR Fre PodWR Fre PodWR" {} P0 | P1 | P2 | P3 ; MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 ; XCHG [a],EBX | XCHG [x],EBX | XCHG [y],EBX | XCHG [z],EBX ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] | MOV EAX,[a] ; forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ 3:EAX=1))) Generated assembler _litmus_P3_0_: movl $1,%edi _litmus_P3_1_: xchgl %edi,(%rcx) _litmus_P3_2_: movl (%rsi),%eax _litmus_P0_0_: movl $1,%edi _litmus_P0_1_: xchgl %edi,(%rsi) _litmus_P0_2_: movl (%rcx),%eax _litmus_P1_0_: movl $1,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax Test X050-A Required Histogram (15 states) 80090 :>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=0; 93036 :>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=0; 533979:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=0; 91287 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=0; 1366806:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=0; 558609:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=0; 1085449:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=0; 100199:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 568525:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 1424424:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 1074724:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 539355:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 1127072:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 1087715:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 268730:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ 3:EAX=1))) is validated Hash=9d8f2889d7e8e3ddbe5384a3e93f011d Time X050-A 9.40 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X051-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X051-A "Fre PodWW Wse PodWR Fre PodWR Fre PodWR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV EBX,$2 | MOV EBX,$1 | MOV EBX,$1 ; MOV [x],$1 | XCHG [x],EBX | XCHG [y],EBX | XCHG [z],EBX ; | MOV EAX,[y] | MOV EAX,[z] | MOV EAX,[a] ; forall (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ x=1))) Generated assembler _litmus_P3_0_: movl $1,%edi _litmus_P3_1_: xchgl %edi,(%rcx) _litmus_P3_2_: movl (%rsi),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax Test X051-A Required Histogram (15 states) 57070 :>1:EAX=0; 2:EAX=0; 3:EAX=0; x=1; 364796:>1:EAX=1; 2:EAX=0; 3:EAX=0; x=1; 1207242:>1:EAX=0; 2:EAX=1; 3:EAX=0; x=1; 850630:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=1; 576716:>1:EAX=0; 2:EAX=0; 3:EAX=1; x=1; 970158:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=1; 1084491:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=1; 184058:>1:EAX=1; 2:EAX=1; 3:EAX=1; x=1; 97874 :>1:EAX=1; 2:EAX=0; 3:EAX=0; x=2; 140658:>1:EAX=0; 2:EAX=1; 3:EAX=0; x=2; 690746:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=2; 167066:>1:EAX=0; 2:EAX=0; 3:EAX=1; x=2; 1733424:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=2; 743668:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=2; 1131403:>1:EAX=1; 2:EAX=1; 3:EAX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ x=1))) is validated Hash=4be721b57cb2f1b349217d7e64548a67 Time X051-A 9.16 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X052-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X052-A "Fre PodWW Wse PodWR Fre PodWR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV EBX,$2 | MOV EBX,$1 ; MOV [x],$1 | XCHG [x],EBX | XCHG [y],EBX ; | MOV EAX,[y] | MOV EAX,[z] ; forall (1:EAX=1 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ x=1)) Generated assembler _litmus_P2_0_: movl $1,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) _litmus_P1_0_: movl $2,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax Test X052-A Required Histogram (7 states) 742580:>1:EAX=0; 2:EAX=0; x=1; 2114763:>1:EAX=1; 2:EAX=0; x=1; 2193539:>1:EAX=0; 2:EAX=1; x=1; 345472:>1:EAX=1; 2:EAX=1; x=1; 1033890:>1:EAX=1; 2:EAX=0; x=2; 1263473:>1:EAX=0; 2:EAX=1; x=2; 2306283:>1:EAX=1; 2:EAX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ x=1)) is validated Hash=deeaad536b86fc06adfee0b9bbb34dbc Time X052-A 6.64 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X053-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X053-A "Fre PodWW Wse PodWW Wse PodWR Fre PodWR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV EBX,$2 | MOV EBX,$1 ; MOV [x],$1 | MOV [y],$1 | XCHG [y],EBX | XCHG [z],EBX ; | | MOV EAX,[z] | MOV EAX,[a] ; forall (2:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) Generated assembler _litmus_P3_0_: movl $1,%edi _litmus_P3_1_: xchgl %edi,(%rcx) _litmus_P3_2_: movl (%rsi),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax Test X053-A Required Histogram (15 states) 419228:>2:EAX=0; 3:EAX=0; x=1; y=1; 769869:>2:EAX=1; 3:EAX=0; x=1; y=1; 947875:>2:EAX=0; 3:EAX=1; x=1; y=1; 106554:>2:EAX=1; 3:EAX=1; x=1; y=1; 88430 :>2:EAX=0; 3:EAX=0; x=2; y=1; 616493:>2:EAX=1; 3:EAX=0; x=2; y=1; 1451629:>2:EAX=0; 3:EAX=1; x=2; y=1; 918930:>2:EAX=1; 3:EAX=1; x=2; y=1; 108048:>2:EAX=0; 3:EAX=0; x=1; y=2; 1337539:>2:EAX=1; 3:EAX=0; x=1; y=2; 806577:>2:EAX=0; 3:EAX=1; x=1; y=2; 1072917:>2:EAX=1; 3:EAX=1; x=1; y=2; 199513:>2:EAX=1; 3:EAX=0; x=2; y=2; 235114:>2:EAX=0; 3:EAX=1; x=2; y=2; 921284:>2:EAX=1; 3:EAX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) is validated Hash=5e98f81a1913285bf989bc9a8c09e214 Time X053-A 9.28 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X054-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X054-A "Fre PodWW Wse PodWR" {} P0 | P1 ; MOV [y],$1 | MOV EBX,$2 ; MOV [x],$1 | XCHG [x],EBX ; | MOV EAX,[y] ; forall (1:EAX=1 /\ (x=2 \/ x=1) \/ 1:EAX=0 /\ x=1) Generated assembler _litmus_P1_0_: movl $2,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X054-A Required Histogram (3 states) 8455306:>1:EAX=0; x=1; 1668762:>1:EAX=1; x=1; 9875932:>1:EAX=1; x=2; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (1:EAX=1 /\ (x=2 \/ x=1) \/ 1:EAX=0 /\ x=1) is validated Hash=8305a3015f900654003ada1eeb4d967b Time X054-A 6.66 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X055-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X055-A "Fre PodWW Wse PodWR Fre PodWW Wse PodWR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV EBX,$2 | MOV [y],$1 | MOV EBX,$2 ; MOV [x],$1 | XCHG [x],EBX | MOV [z],$1 | XCHG [z],EBX ; | MOV EAX,[y] | | MOV EAX,[a] ; forall (1:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1)))) Generated assembler _litmus_P3_0_: movl $2,%edi _litmus_P3_1_: xchgl %edi,(%rcx) _litmus_P3_2_: movl (%rsi),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,%edi _litmus_P1_1_: xchgl %edi,(%rsi) _litmus_P1_2_: movl (%rcx),%eax _litmus_P2_0_: movl $1,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X055-A Required Histogram (15 states) 1064272:>1:EAX=0; 3:EAX=0; x=1; z=1; 795202:>1:EAX=1; 3:EAX=0; x=1; z=1; 825532:>1:EAX=0; 3:EAX=1; x=1; z=1; 106716:>1:EAX=1; 3:EAX=1; x=1; z=1; 118012:>1:EAX=0; 3:EAX=0; x=2; z=1; 775168:>1:EAX=1; 3:EAX=0; x=2; z=1; 543929:>1:EAX=0; 3:EAX=1; x=2; z=1; 965704:>1:EAX=1; 3:EAX=1; x=2; z=1; 115097:>1:EAX=0; 3:EAX=0; x=1; z=2; 521576:>1:EAX=1; 3:EAX=0; x=1; z=2; 745319:>1:EAX=0; 3:EAX=1; x=1; z=2; 958562:>1:EAX=1; 3:EAX=1; x=1; z=2; 193681:>1:EAX=1; 3:EAX=0; x=2; z=2; 199852:>1:EAX=0; 3:EAX=1; x=2; z=2; 2071378:>1:EAX=1; 3:EAX=1; x=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1)))) is validated Hash=56e3ee233bb636fd1850aaf5d29b5d9b Time X055-A 9.19 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X056-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X056-A "Fre PodWW Wse PodWW Wse PodWR" {} P0 | P1 | P2 ; MOV [z],$1 | MOV [x],$2 | MOV EBX,$2 ; MOV [x],$1 | MOV [y],$1 | XCHG [y],EBX ; | | MOV EAX,[z] ; forall (2:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) Generated assembler _litmus_P2_0_: movl $2,%edi _litmus_P2_1_: xchgl %edi,(%rsi) _litmus_P2_2_: movl (%rcx),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) Test X056-A Required Histogram (7 states) 1940712:>2:EAX=0; x=1; y=1; 161794:>2:EAX=1; x=1; y=1; 963925:>2:EAX=0; x=2; y=1; 2132506:>2:EAX=1; x=2; y=1; 919581:>2:EAX=0; x=1; y=2; 2452907:>2:EAX=1; x=1; y=2; 1428575:>2:EAX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) is validated Hash=72e6fbfef1758355bb22052f433bb358 Time X056-A 6.80 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./A/X057-A.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X057-A "Fre PodWW Wse PodWW Wse PodWW Wse PodWR" {} P0 | P1 | P2 | P3 ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV EBX,$2 ; MOV [x],$1 | MOV [y],$1 | MOV [z],$1 | XCHG [z],EBX ; | | | MOV EAX,[a] ; forall (3:EAX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) Generated assembler _litmus_P3_0_: movl $2,%edi _litmus_P3_1_: xchgl %edi,(%rcx) _litmus_P3_2_: movl (%rsi),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl $1,(%rax) _litmus_P2_0_: movl $2,(%rdx) _litmus_P2_1_: movl $1,(%rax) Test X057-A Required Histogram (15 states) 669222:>3:EAX=0; x=1; y=1; z=1; 41940 :>3:EAX=1; x=1; y=1; z=1; 623213:>3:EAX=0; x=2; y=1; z=1; 813943:>3:EAX=1; x=2; y=1; z=1; 1295535:>3:EAX=0; x=1; y=2; z=1; 873926:>3:EAX=1; x=1; y=2; z=1; 154816:>3:EAX=0; x=2; y=2; z=1; 711353:>3:EAX=1; x=2; y=2; z=1; 484602:>3:EAX=0; x=1; y=1; z=2; 959597:>3:EAX=1; x=1; y=1; z=2; 124242:>3:EAX=0; x=2; y=1; z=2; 1891523:>3:EAX=1; x=2; y=1; z=2; 157211:>3:EAX=0; x=1; y=2; z=2; 951163:>3:EAX=1; x=1; y=2; z=2; 247714:>3:EAX=1; x=2; y=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) is validated Hash=ca584c5a2111e6e18891bed8f225c5bb Time X057-A 9.67 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X000-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X000-L "Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 ; Lock00: | Lock06: ; MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_y],ECX | XCHG [L_x],ECX ; CMP ECX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 ; Lock01: | Lock07: ; MOV ECX,[L_y] | MOV ECX,[L_x] ; CMP ECX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 ; JMP Lock01 | JMP Lock07 ; Lock02: | Lock08: ; MOV [y],$1 | MOV [x],$1 ; MOV [L_y],$0 | MOV [L_x],$0 ; MOV EAX,[y] | MOV EAX,[x] ; Lock03: | Lock09: ; MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_x],ECX | XCHG [L_y],ECX ; CMP ECX,$0 | CMP ECX,$0 ; JE Lock05 | JE Lock11 ; Lock04: | Lock10: ; MOV ECX,[L_x] | MOV ECX,[L_y] ; CMP ECX,$0 | CMP ECX,$0 ; JE Lock03 | JE Lock09 ; JMP Lock04 | JMP Lock10 ; Lock05: | Lock11: ; MOV EBX,[x] | MOV EBX,[y] ; MOV [L_x],$0 | MOV [L_y],$0 ; forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r11d _litmus_P1_2_: xchgl %r11d,(%r10) _litmus_P1_3_: cmpl $0,%r11d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r11d _litmus_P1_7_: cmpl $0,%r11d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r8) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: movl (%r8),%eax _litmus_P1_14_: LitLock09: _litmus_P1_15_: movl $1,%r11d _litmus_P1_16_: xchgl %r11d,(%r9) _litmus_P1_17_: cmpl $0,%r11d _litmus_P1_18_: je LitLock11 _litmus_P1_19_: LitLock10: _litmus_P1_20_: movl (%r9),%r11d _litmus_P1_21_: cmpl $0,%r11d _litmus_P1_22_: je LitLock09 _litmus_P1_23_: jmp LitLock10 _litmus_P1_24_: LitLock11: _litmus_P1_25_: movl (%rdi),%edx _litmus_P1_26_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r11d _litmus_P0_2_: xchgl %r11d,(%r9) _litmus_P0_3_: cmpl $0,%r11d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r9),%r11d _litmus_P0_7_: cmpl $0,%r11d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdi) _litmus_P0_12_: movl $0,(%r9) _litmus_P0_13_: movl (%rdi),%eax _litmus_P0_14_: LitLock03: _litmus_P0_15_: movl $1,%r11d _litmus_P0_16_: xchgl %r11d,(%r10) _litmus_P0_17_: cmpl $0,%r11d _litmus_P0_18_: je LitLock05 _litmus_P0_19_: LitLock04: _litmus_P0_20_: movl (%r10),%r11d _litmus_P0_21_: cmpl $0,%r11d _litmus_P0_22_: je LitLock03 _litmus_P0_23_: jmp LitLock04 _litmus_P0_24_: LitLock05: _litmus_P0_25_: movl (%r8),%edx _litmus_P0_26_: movl $0,(%r10) Test X000-L Required Histogram (3 states) 5261887:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 5255910:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 9482203:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) is validated Hash=0909486b449f04392fec0ec3d9aa68e0 Time X000-L 11.56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X001-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X001-L "Fre Rfi PodRR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV ECX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_z],ECX | XCHG [L_x],ECX | XCHG [L_y],ECX ; CMP ECX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV ECX,[L_z] | MOV ECX,[L_x] | MOV ECX,[L_y] ; CMP ECX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [z],$1 | MOV [x],$1 | MOV [y],$1 ; MOV [L_z],$0 | MOV [L_x],$0 | MOV [L_y],$0 ; MOV EAX,[z] | MOV EAX,[x] | MOV EAX,[y] ; Lock03: | Lock09: | Lock15: ; MOV ECX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_x],ECX | XCHG [L_y],ECX | XCHG [L_z],ECX ; CMP ECX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock05 | JE Lock11 | JE Lock17 ; Lock04: | Lock10: | Lock16: ; MOV ECX,[L_x] | MOV ECX,[L_y] | MOV ECX,[L_z] ; CMP ECX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock03 | JE Lock09 | JE Lock15 ; JMP Lock04 | JMP Lock10 | JMP Lock16 ; Lock05: | Lock11: | Lock17: ; MOV EBX,[x] | MOV EBX,[y] | MOV EBX,[z] ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r10) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r8) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: movl (%r8),%eax _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r11d _litmus_P2_16_: xchgl %r11d,(%r9) _litmus_P2_17_: cmpl $0,%r11d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r9),%r11d _litmus_P2_21_: cmpl $0,%r11d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%rdi),%edx _litmus_P2_26_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r11d _litmus_P0_2_: xchgl %r11d,(%r9) _litmus_P0_3_: cmpl $0,%r11d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r9),%r11d _litmus_P0_7_: cmpl $0,%r11d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdi) _litmus_P0_12_: movl $0,(%r9) _litmus_P0_13_: movl (%rdi),%eax _litmus_P0_14_: LitLock03: _litmus_P0_15_: movl $1,%r11d _litmus_P0_16_: xchgl %r11d,(%r10) _litmus_P0_17_: cmpl $0,%r11d _litmus_P0_18_: je LitLock05 _litmus_P0_19_: LitLock04: _litmus_P0_20_: movl (%r10),%r11d _litmus_P0_21_: cmpl $0,%r11d _litmus_P0_22_: je LitLock03 _litmus_P0_23_: jmp LitLock04 _litmus_P0_24_: LitLock05: _litmus_P0_25_: movl (%r8),%edx _litmus_P0_26_: movl $0,(%r10) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r11d _litmus_P1_2_: xchgl %r11d,(%r10) _litmus_P1_3_: cmpl $0,%r11d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r11d _litmus_P1_7_: cmpl $0,%r11d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r8) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: movl (%r8),%eax _litmus_P1_14_: LitLock09: _litmus_P1_15_: movl $1,%r11d _litmus_P1_16_: xchgl %r11d,(%r9) _litmus_P1_17_: cmpl $0,%r11d _litmus_P1_18_: je LitLock11 _litmus_P1_19_: LitLock10: _litmus_P1_20_: movl (%r9),%r11d _litmus_P1_21_: cmpl $0,%r11d _litmus_P1_22_: je LitLock09 _litmus_P1_23_: jmp LitLock10 _litmus_P1_24_: LitLock11: _litmus_P1_25_: movl (%rdi),%edx _litmus_P1_26_: movl $0,(%r9) Test X001-L Required Histogram (7 states) 155701:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 163333:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2359333:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 140319:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2105162:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2348592:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 2727560:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=4448df3f927b9062bbcb11cd1b4fd9fb Time X001-L 11.85 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X002-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X002-L "Fre PodWW Rfi PodRR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV ECX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_a],ECX | XCHG [L_y],ECX | XCHG [L_z],ECX ; CMP ECX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV ECX,[L_a] | MOV ECX,[L_y] | MOV ECX,[L_z] ; CMP ECX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [a],$1 | MOV [y],$1 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; MOV [x],$1 | MOV EAX,[y] | MOV EAX,[z] ; MOV EAX,[x] | Lock09: | Lock15: ; Lock03: | MOV ECX,$1 | MOV ECX,$1 ; MOV ECX,$1 | XCHG [L_z],ECX | XCHG [L_a],ECX ; XCHG [L_y],ECX | CMP ECX,$0 | CMP ECX,$0 ; CMP ECX,$0 | JE Lock11 | JE Lock17 ; JE Lock05 | Lock10: | Lock16: ; Lock04: | MOV ECX,[L_z] | MOV ECX,[L_a] ; MOV ECX,[L_y] | CMP ECX,$0 | CMP ECX,$0 ; CMP ECX,$0 | JE Lock09 | JE Lock15 ; JE Lock03 | JMP Lock10 | JMP Lock16 ; JMP Lock04 | Lock11: | Lock17: ; Lock05: | MOV EBX,[z] | MOV EBX,[a] ; MOV EBX,[y] | MOV [L_z],$0 | MOV [L_a],$0 ; MOV [L_y],$0 | | ; forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r9) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r9),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rdi) _litmus_P2_12_: movl $0,(%r9) _litmus_P2_13_: movl (%rdi),%eax _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r11d _litmus_P2_16_: xchgl %r11d,(%r10) _litmus_P2_17_: cmpl $0,%r11d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r10),%r11d _litmus_P2_21_: cmpl $0,%r11d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%r8),%edx _litmus_P2_26_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%ebx _litmus_P0_2_: xchgl %ebx,(%r11) _litmus_P0_3_: cmpl $0,%ebx _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r11),%ebx _litmus_P0_7_: cmpl $0,%ebx _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r9) _litmus_P0_12_: movl $0,(%r11) _litmus_P0_13_: movl $1,(%r8) _litmus_P0_14_: movl (%r8),%eax _litmus_P0_15_: LitLock03: _litmus_P0_16_: movl $1,%ebx _litmus_P0_17_: xchgl %ebx,(%r10) _litmus_P0_18_: cmpl $0,%ebx _litmus_P0_19_: je LitLock05 _litmus_P0_20_: LitLock04: _litmus_P0_21_: movl (%r10),%ebx _litmus_P0_22_: cmpl $0,%ebx _litmus_P0_23_: je LitLock03 _litmus_P0_24_: jmp LitLock04 _litmus_P0_25_: LitLock05: _litmus_P0_26_: movl (%rdi),%edx _litmus_P0_27_: movl $0,(%r10) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r11d _litmus_P1_2_: xchgl %r11d,(%r10) _litmus_P1_3_: cmpl $0,%r11d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r11d _litmus_P1_7_: cmpl $0,%r11d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r8) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: movl (%r8),%eax _litmus_P1_14_: LitLock09: _litmus_P1_15_: movl $1,%r11d _litmus_P1_16_: xchgl %r11d,(%r9) _litmus_P1_17_: cmpl $0,%r11d _litmus_P1_18_: je LitLock11 _litmus_P1_19_: LitLock10: _litmus_P1_20_: movl (%r9),%r11d _litmus_P1_21_: cmpl $0,%r11d _litmus_P1_22_: je LitLock09 _litmus_P1_23_: jmp LitLock10 _litmus_P1_24_: LitLock11: _litmus_P1_25_: movl (%rdi),%edx _litmus_P1_26_: movl $0,(%r9) Test X002-L Required Histogram (7 states) 140425:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 130901:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2391619:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 121326:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2231512:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2134693:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 2849524:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=f42a2ffb3d50a8968e53faaa20806ba5 Time X002-L 12.31 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X003-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X003-L "Fre PodWR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EBX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_z],EBX | XCHG [L_x],ECX | XCHG [L_y],ECX ; CMP EBX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EBX,[L_z] | MOV ECX,[L_x] | MOV ECX,[L_y] ; CMP EBX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [z],$1 | MOV [x],$1 | MOV [y],$1 ; MOV [L_z],$0 | MOV [L_x],$0 | MOV [L_y],$0 ; Lock03: | MOV EAX,[x] | MOV EAX,[y] ; MOV EBX,$1 | Lock09: | Lock15: ; XCHG [L_x],EBX | MOV ECX,$1 | MOV ECX,$1 ; CMP EBX,$0 | XCHG [L_y],ECX | XCHG [L_z],ECX ; JE Lock05 | CMP ECX,$0 | CMP ECX,$0 ; Lock04: | JE Lock11 | JE Lock17 ; MOV EBX,[L_x] | Lock10: | Lock16: ; CMP EBX,$0 | MOV ECX,[L_y] | MOV ECX,[L_z] ; JE Lock03 | CMP ECX,$0 | CMP ECX,$0 ; JMP Lock04 | JE Lock09 | JE Lock15 ; Lock05: | JMP Lock10 | JMP Lock16 ; MOV EAX,[x] | Lock11: | Lock17: ; MOV [L_x],$0 | MOV EBX,[y] | MOV EBX,[z] ; | MOV [L_y],$0 | MOV [L_z],$0 ; forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r10) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r8) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: movl (%r8),%eax _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r11d _litmus_P2_16_: xchgl %r11d,(%r9) _litmus_P2_17_: cmpl $0,%r11d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r9),%r11d _litmus_P2_21_: cmpl $0,%r11d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%rdi),%edx _litmus_P2_26_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%rdi) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdi),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rcx) _litmus_P0_12_: movl $0,(%rdi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%r8) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r8),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rsi),%eax _litmus_P0_25_: movl $0,(%r8) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r11d _litmus_P1_2_: xchgl %r11d,(%r10) _litmus_P1_3_: cmpl $0,%r11d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r11d _litmus_P1_7_: cmpl $0,%r11d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r8) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: movl (%r8),%eax _litmus_P1_14_: LitLock09: _litmus_P1_15_: movl $1,%r11d _litmus_P1_16_: xchgl %r11d,(%r9) _litmus_P1_17_: cmpl $0,%r11d _litmus_P1_18_: je LitLock11 _litmus_P1_19_: LitLock10: _litmus_P1_20_: movl (%r9),%r11d _litmus_P1_21_: cmpl $0,%r11d _litmus_P1_22_: je LitLock09 _litmus_P1_23_: jmp LitLock10 _litmus_P1_24_: LitLock11: _litmus_P1_25_: movl (%rdi),%edx _litmus_P1_26_: movl $0,(%r9) Test X003-L Required Histogram (7 states) 142618:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 170119:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2191960:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 130926:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2022839:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2713351:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 2628187:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=f8d7e8e5af3c6103f68c70c5324edb60 Time X003-L 11.82 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X004-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X004-L "Fre PodWR Fre PodWR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EBX,$1 | MOV EBX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_a],EBX | XCHG [L_x],EBX | XCHG [L_y],ECX | XCHG [L_z],ECX ; CMP EBX,$0 | CMP EBX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EBX,[L_a] | MOV EBX,[L_x] | MOV ECX,[L_y] | MOV ECX,[L_z] ; CMP EBX,$0 | CMP EBX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | MOV EAX,[y] | MOV EAX,[z] ; MOV EBX,$1 | MOV EBX,$1 | Lock15: | Lock21: ; XCHG [L_x],EBX | XCHG [L_y],EBX | MOV ECX,$1 | MOV ECX,$1 ; CMP EBX,$0 | CMP EBX,$0 | XCHG [L_z],ECX | XCHG [L_a],ECX ; JE Lock05 | JE Lock11 | CMP ECX,$0 | CMP ECX,$0 ; Lock04: | Lock10: | JE Lock17 | JE Lock23 ; MOV EBX,[L_x] | MOV EBX,[L_y] | Lock16: | Lock22: ; CMP EBX,$0 | CMP EBX,$0 | MOV ECX,[L_z] | MOV ECX,[L_a] ; JE Lock03 | JE Lock09 | CMP ECX,$0 | CMP ECX,$0 ; JMP Lock04 | JMP Lock10 | JE Lock15 | JE Lock21 ; Lock05: | Lock11: | JMP Lock16 | JMP Lock22 ; MOV EAX,[x] | MOV EAX,[y] | Lock17: | Lock23: ; MOV [L_x],$0 | MOV [L_y],$0 | MOV EBX,[z] | MOV EBX,[a] ; | | MOV [L_z],$0 | MOV [L_a],$0 ; forall (2:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r11d _litmus_P3_2_: xchgl %r11d,(%r9) _litmus_P3_3_: cmpl $0,%r11d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r9),%r11d _litmus_P3_7_: cmpl $0,%r11d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rdi) _litmus_P3_12_: movl $0,(%r9) _litmus_P3_13_: movl (%rdi),%eax _litmus_P3_14_: LitLock21: _litmus_P3_15_: movl $1,%r11d _litmus_P3_16_: xchgl %r11d,(%r10) _litmus_P3_17_: cmpl $0,%r11d _litmus_P3_18_: je LitLock23 _litmus_P3_19_: LitLock22: _litmus_P3_20_: movl (%r10),%r11d _litmus_P3_21_: cmpl $0,%r11d _litmus_P3_22_: je LitLock21 _litmus_P3_23_: jmp LitLock22 _litmus_P3_24_: LitLock23: _litmus_P3_25_: movl (%r8),%edx _litmus_P3_26_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r10) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r8) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: movl (%r8),%eax _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r11d _litmus_P2_16_: xchgl %r11d,(%r9) _litmus_P2_17_: cmpl $0,%r11d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r9),%r11d _litmus_P2_21_: cmpl $0,%r11d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%rdi),%edx _litmus_P2_26_: movl $0,(%r9) Test X004-L Required Histogram (15 states) 4969 :>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 2885 :>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 140176:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 2464 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 474235:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 137033:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 1460108:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 4114 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 186347:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 487256:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 1619966:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 136328:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 1591377:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 1661573:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 2091169:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) is validated Hash=6767e7aceb6cf7d84eef4576507d1d5f Time X004-L 15.84 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X005-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X005-L "Fre PodWW Wse PodWR Fre Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EAX,$1 | MOV EBX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_a],EAX | XCHG [L_x],EBX | XCHG [L_y],ECX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP EBX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EAX,[L_a] | MOV EBX,[L_x] | MOV ECX,[L_y] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP EBX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | MOV EAX,[y] | MOV EAX,[z] ; MOV EAX,$1 | MOV EBX,$1 | Lock15: | Lock21: ; XCHG [L_x],EAX | XCHG [L_y],EBX | MOV ECX,$1 | MOV ECX,$1 ; CMP EAX,$0 | CMP EBX,$0 | XCHG [L_z],ECX | XCHG [L_a],ECX ; JE Lock05 | JE Lock11 | CMP ECX,$0 | CMP ECX,$0 ; Lock04: | Lock10: | JE Lock17 | JE Lock23 ; MOV EAX,[L_x] | MOV EBX,[L_y] | Lock16: | Lock22: ; CMP EAX,$0 | CMP EBX,$0 | MOV ECX,[L_z] | MOV ECX,[L_a] ; JE Lock03 | JE Lock09 | CMP ECX,$0 | CMP ECX,$0 ; JMP Lock04 | JMP Lock10 | JE Lock15 | JE Lock21 ; Lock05: | Lock11: | JMP Lock16 | JMP Lock22 ; MOV [x],$1 | MOV EAX,[y] | Lock17: | Lock23: ; MOV [L_x],$0 | MOV [L_y],$0 | MOV EBX,[z] | MOV EBX,[a] ; | | MOV [L_z],$0 | MOV [L_a],$0 ; forall (2:EAX=1 /\ 3:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r11d _litmus_P3_2_: xchgl %r11d,(%r9) _litmus_P3_3_: cmpl $0,%r11d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r9),%r11d _litmus_P3_7_: cmpl $0,%r11d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rdi) _litmus_P3_12_: movl $0,(%r9) _litmus_P3_13_: movl (%rdi),%eax _litmus_P3_14_: LitLock21: _litmus_P3_15_: movl $1,%r11d _litmus_P3_16_: xchgl %r11d,(%r10) _litmus_P3_17_: cmpl $0,%r11d _litmus_P3_18_: je LitLock23 _litmus_P3_19_: LitLock22: _litmus_P3_20_: movl (%r10),%r11d _litmus_P3_21_: cmpl $0,%r11d _litmus_P3_22_: je LitLock21 _litmus_P3_23_: jmp LitLock22 _litmus_P3_24_: LitLock23: _litmus_P3_25_: movl (%r8),%edx _litmus_P3_26_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r10) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r8) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: movl (%r8),%eax _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r11d _litmus_P2_16_: xchgl %r11d,(%r9) _litmus_P2_17_: cmpl $0,%r11d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r9),%r11d _litmus_P2_21_: cmpl $0,%r11d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%rdi),%edx _litmus_P2_26_: movl $0,(%r9) Test X005-L Required Histogram (15 states) 4481 :>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 134945:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 492998:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 1464772:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 153017:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 1412044:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 1674759:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 2025642:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 4366 :>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; 2669 :>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 149299:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 4266 :>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 530843:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 177699:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; 1768200:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ 3:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is validated Hash=f165503094c8c732ce277d761370e56d Time X005-L 16.26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X006-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X006-L "Fre PodWW Wse Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock15: ; MOV EAX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_z],EAX | XCHG [L_x],ECX | XCHG [L_y],ECX ; CMP EAX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock17 ; Lock01: | Lock07: | Lock16: ; MOV EAX,[L_z] | MOV ECX,[L_x] | MOV ECX,[L_y] ; CMP EAX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock15 ; JMP Lock01 | JMP Lock07 | JMP Lock16 ; Lock02: | Lock08: | Lock17: ; MOV [z],$1 | MOV [x],$2 | MOV [y],$1 ; MOV [L_z],$0 | MOV [L_x],$0 | MOV [L_y],$0 ; Lock03: | Lock09: | MOV EAX,[y] ; MOV EAX,$1 | MOV ECX,$1 | Lock18: ; XCHG [L_x],EAX | XCHG [L_x],ECX | MOV ECX,$1 ; CMP EAX,$0 | CMP ECX,$0 | XCHG [L_z],ECX ; JE Lock05 | JE Lock11 | CMP ECX,$0 ; Lock04: | Lock10: | JE Lock20 ; MOV EAX,[L_x] | MOV ECX,[L_x] | Lock19: ; CMP EAX,$0 | CMP ECX,$0 | MOV ECX,[L_z] ; JE Lock03 | JE Lock09 | CMP ECX,$0 ; JMP Lock04 | JMP Lock10 | JE Lock18 ; Lock05: | Lock11: | JMP Lock19 ; MOV [x],$1 | MOV EAX,[x] | Lock20: ; MOV [L_x],$0 | MOV [L_x],$0 | MOV EBX,[z] ; | Lock12: | MOV [L_z],$0 ; | MOV ECX,$1 | ; | XCHG [L_y],ECX | ; | CMP ECX,$0 | ; | JE Lock14 | ; | Lock13: | ; | MOV ECX,[L_y] | ; | CMP ECX,$0 | ; | JE Lock12 | ; | JMP Lock13 | ; | Lock14: | ; | MOV EBX,[y] | ; | MOV [L_y],$0 | ; forall (2:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: LitLock15: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r10) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock17 _litmus_P2_5_: LitLock16: _litmus_P2_6_: movl (%r10),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock15 _litmus_P2_9_: jmp LitLock16 _litmus_P2_10_: LitLock17: _litmus_P2_11_: movl $1,(%r8) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: movl (%r8),%eax _litmus_P2_14_: LitLock18: _litmus_P2_15_: movl $1,%r11d _litmus_P2_16_: xchgl %r11d,(%r9) _litmus_P2_17_: cmpl $0,%r11d _litmus_P2_18_: je LitLock20 _litmus_P2_19_: LitLock19: _litmus_P2_20_: movl (%r9),%r11d _litmus_P2_21_: cmpl $0,%r11d _litmus_P2_22_: je LitLock18 _litmus_P2_23_: jmp LitLock19 _litmus_P2_24_: LitLock20: _litmus_P2_25_: movl (%rdi),%edx _litmus_P2_26_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rcx) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rcx),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rax) _litmus_P0_12_: movl $0,(%rcx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rsi) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rsi),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rdx) _litmus_P0_25_: movl $0,(%rsi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r11d _litmus_P1_2_: xchgl %r11d,(%r10) _litmus_P1_3_: cmpl $0,%r11d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r11d _litmus_P1_7_: cmpl $0,%r11d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r8) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r11d _litmus_P1_15_: xchgl %r11d,(%r10) _litmus_P1_16_: cmpl $0,%r11d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r10),%r11d _litmus_P1_20_: cmpl $0,%r11d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r8),%eax _litmus_P1_25_: movl $0,(%r10) _litmus_P1_26_: LitLock12: _litmus_P1_27_: movl $1,%r11d _litmus_P1_28_: xchgl %r11d,(%r9) _litmus_P1_29_: cmpl $0,%r11d _litmus_P1_30_: je LitLock14 _litmus_P1_31_: LitLock13: _litmus_P1_32_: movl (%r9),%r11d _litmus_P1_33_: cmpl $0,%r11d _litmus_P1_34_: je LitLock12 _litmus_P1_35_: jmp LitLock13 _litmus_P1_36_: LitLock14: _litmus_P1_37_: movl (%rdi),%edx _litmus_P1_38_: movl $0,(%r9) Test X006-L Required Histogram (10 states) 139019:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 59003 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 2218968:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 25724 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 1797034:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 263477:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 2480038:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 161816:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 122838:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 2732083:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=ada78361f0e501476005f7f0ded29799 Time X006-L 12.19 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X007-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X007-L "Fre PodWR Fre PodWW Wse Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock21: ; MOV EBX,$1 | MOV EAX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_a],EBX | XCHG [L_x],EAX | XCHG [L_y],ECX | XCHG [L_z],ECX ; CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock23 ; Lock01: | Lock07: | Lock13: | Lock22: ; MOV EBX,[L_a] | MOV EAX,[L_x] | MOV ECX,[L_y] | MOV ECX,[L_z] ; CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock21 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock22 ; Lock02: | Lock08: | Lock14: | Lock23: ; MOV [a],$1 | MOV [x],$1 | MOV [y],$2 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | MOV EAX,[z] ; MOV EBX,$1 | MOV EAX,$1 | MOV ECX,$1 | Lock24: ; XCHG [L_x],EBX | XCHG [L_y],EAX | XCHG [L_y],ECX | MOV ECX,$1 ; CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 | XCHG [L_a],ECX ; JE Lock05 | JE Lock11 | JE Lock17 | CMP ECX,$0 ; Lock04: | Lock10: | Lock16: | JE Lock26 ; MOV EBX,[L_x] | MOV EAX,[L_y] | MOV ECX,[L_y] | Lock25: ; CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 | MOV ECX,[L_a] ; JE Lock03 | JE Lock09 | JE Lock15 | CMP ECX,$0 ; JMP Lock04 | JMP Lock10 | JMP Lock16 | JE Lock24 ; Lock05: | Lock11: | Lock17: | JMP Lock25 ; MOV EAX,[x] | MOV [y],$1 | MOV EAX,[y] | Lock26: ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_y],$0 | MOV EBX,[a] ; | | Lock18: | MOV [L_a],$0 ; | | MOV ECX,$1 | ; | | XCHG [L_z],ECX | ; | | CMP ECX,$0 | ; | | JE Lock20 | ; | | Lock19: | ; | | MOV ECX,[L_z] | ; | | CMP ECX,$0 | ; | | JE Lock18 | ; | | JMP Lock19 | ; | | Lock20: | ; | | MOV EBX,[z] | ; | | MOV [L_z],$0 | ; forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: LitLock21: _litmus_P3_1_: movl $1,%r11d _litmus_P3_2_: xchgl %r11d,(%r9) _litmus_P3_3_: cmpl $0,%r11d _litmus_P3_4_: je LitLock23 _litmus_P3_5_: LitLock22: _litmus_P3_6_: movl (%r9),%r11d _litmus_P3_7_: cmpl $0,%r11d _litmus_P3_8_: je LitLock21 _litmus_P3_9_: jmp LitLock22 _litmus_P3_10_: LitLock23: _litmus_P3_11_: movl $1,(%rdi) _litmus_P3_12_: movl $0,(%r9) _litmus_P3_13_: movl (%rdi),%eax _litmus_P3_14_: LitLock24: _litmus_P3_15_: movl $1,%r11d _litmus_P3_16_: xchgl %r11d,(%r10) _litmus_P3_17_: cmpl $0,%r11d _litmus_P3_18_: je LitLock26 _litmus_P3_19_: LitLock25: _litmus_P3_20_: movl (%r10),%r11d _litmus_P3_21_: cmpl $0,%r11d _litmus_P3_22_: je LitLock24 _litmus_P3_23_: jmp LitLock25 _litmus_P3_24_: LitLock26: _litmus_P3_25_: movl (%r8),%edx _litmus_P3_26_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r10) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r8) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r11d _litmus_P2_15_: xchgl %r11d,(%r10) _litmus_P2_16_: cmpl $0,%r11d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r10),%r11d _litmus_P2_20_: cmpl $0,%r11d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r8),%eax _litmus_P2_25_: movl $0,(%r10) _litmus_P2_26_: LitLock18: _litmus_P2_27_: movl $1,%r11d _litmus_P2_28_: xchgl %r11d,(%r9) _litmus_P2_29_: cmpl $0,%r11d _litmus_P2_30_: je LitLock20 _litmus_P2_31_: LitLock19: _litmus_P2_32_: movl (%r9),%r11d _litmus_P2_33_: cmpl $0,%r11d _litmus_P2_34_: je LitLock18 _litmus_P2_35_: jmp LitLock19 _litmus_P2_36_: LitLock20: _litmus_P2_37_: movl (%rdi),%edx _litmus_P2_38_: movl $0,(%r9) Test X007-L Required Histogram (22 states) 2225 :>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 3183 :>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 111216:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 1995 :>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 113284:>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 156095:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 1417472:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 362 :>0:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 27187 :>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 413201:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 1183257:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 76316 :>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 276320:>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 1629988:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 1942256:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 4066 :>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=2; 4193 :>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 556440:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 2155 :>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 124086:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 186437:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; 1768266:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EBX=0 /\ 3:EBX=1)))) is validated Hash=98962316126419f9c53d81b23002a55e Time X007-L 16.85 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X008-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X008-L "Fre PodWW Wse PodWW Wse Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock21: ; MOV EAX,$1 | MOV EAX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_a],EAX | XCHG [L_x],EAX | XCHG [L_y],ECX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock23 ; Lock01: | Lock07: | Lock13: | Lock22: ; MOV EAX,[L_a] | MOV EAX,[L_x] | MOV ECX,[L_y] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock21 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock22 ; Lock02: | Lock08: | Lock14: | Lock23: ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | MOV EAX,[z] ; MOV EAX,$1 | MOV EAX,$1 | MOV ECX,$1 | Lock24: ; XCHG [L_x],EAX | XCHG [L_y],EAX | XCHG [L_y],ECX | MOV ECX,$1 ; CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 | XCHG [L_a],ECX ; JE Lock05 | JE Lock11 | JE Lock17 | CMP ECX,$0 ; Lock04: | Lock10: | Lock16: | JE Lock26 ; MOV EAX,[L_x] | MOV EAX,[L_y] | MOV ECX,[L_y] | Lock25: ; CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 | MOV ECX,[L_a] ; JE Lock03 | JE Lock09 | JE Lock15 | CMP ECX,$0 ; JMP Lock04 | JMP Lock10 | JMP Lock16 | JE Lock24 ; Lock05: | Lock11: | Lock17: | JMP Lock25 ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[y] | Lock26: ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_y],$0 | MOV EBX,[a] ; | | Lock18: | MOV [L_a],$0 ; | | MOV ECX,$1 | ; | | XCHG [L_z],ECX | ; | | CMP ECX,$0 | ; | | JE Lock20 | ; | | Lock19: | ; | | MOV ECX,[L_z] | ; | | CMP ECX,$0 | ; | | JE Lock18 | ; | | JMP Lock19 | ; | | Lock20: | ; | | MOV EBX,[z] | ; | | MOV [L_z],$0 | ; forall (3:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: LitLock21: _litmus_P3_1_: movl $1,%r11d _litmus_P3_2_: xchgl %r11d,(%r9) _litmus_P3_3_: cmpl $0,%r11d _litmus_P3_4_: je LitLock23 _litmus_P3_5_: LitLock22: _litmus_P3_6_: movl (%r9),%r11d _litmus_P3_7_: cmpl $0,%r11d _litmus_P3_8_: je LitLock21 _litmus_P3_9_: jmp LitLock22 _litmus_P3_10_: LitLock23: _litmus_P3_11_: movl $1,(%rdi) _litmus_P3_12_: movl $0,(%r9) _litmus_P3_13_: movl (%rdi),%eax _litmus_P3_14_: LitLock24: _litmus_P3_15_: movl $1,%r11d _litmus_P3_16_: xchgl %r11d,(%r10) _litmus_P3_17_: cmpl $0,%r11d _litmus_P3_18_: je LitLock26 _litmus_P3_19_: LitLock25: _litmus_P3_20_: movl (%r10),%r11d _litmus_P3_21_: cmpl $0,%r11d _litmus_P3_22_: je LitLock24 _litmus_P3_23_: jmp LitLock25 _litmus_P3_24_: LitLock26: _litmus_P3_25_: movl (%r8),%edx _litmus_P3_26_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r10) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r8) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r11d _litmus_P2_15_: xchgl %r11d,(%r10) _litmus_P2_16_: cmpl $0,%r11d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r10),%r11d _litmus_P2_20_: cmpl $0,%r11d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r8),%eax _litmus_P2_25_: movl $0,(%r10) _litmus_P2_26_: LitLock18: _litmus_P2_27_: movl $1,%r11d _litmus_P2_28_: xchgl %r11d,(%r9) _litmus_P2_29_: cmpl $0,%r11d _litmus_P2_30_: je LitLock20 _litmus_P2_31_: LitLock19: _litmus_P2_32_: movl (%r9),%r11d _litmus_P2_33_: cmpl $0,%r11d _litmus_P2_34_: je LitLock18 _litmus_P2_35_: jmp LitLock19 _litmus_P2_36_: LitLock20: _litmus_P2_37_: movl (%rdi),%edx _litmus_P2_38_: movl $0,(%r9) Test X008-L Required Histogram (22 states) 2135 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 118390:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 126934:>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 1373986:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 39650 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 1276140:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 279850:>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 1810901:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 2253 :>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 1930 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 127082:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 813 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 399344:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 76594 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 1652393:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 5116 :>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 516302:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 141139:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 1851224:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 3405 :>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 3179 :>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 191240:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EBX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is validated Hash=b210d80428babe95c568ee61f81615e9 Time X008-L 16.80 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X009-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X009-L "Fre PodWW Rfi PodRR Fre Rfi PodRR" {} P0 | P1 ; Lock00: | Lock06: ; MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_z],ECX | XCHG [L_y],ECX ; CMP ECX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 ; Lock01: | Lock07: ; MOV ECX,[L_z] | MOV ECX,[L_y] ; CMP ECX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 ; JMP Lock01 | JMP Lock07 ; Lock02: | Lock08: ; MOV [z],$1 | MOV [y],$1 ; MOV [L_z],$0 | MOV [L_y],$0 ; MOV [x],$1 | MOV EAX,[y] ; MOV EAX,[x] | Lock09: ; Lock03: | MOV ECX,$1 ; MOV ECX,$1 | XCHG [L_z],ECX ; XCHG [L_y],ECX | CMP ECX,$0 ; CMP ECX,$0 | JE Lock11 ; JE Lock05 | Lock10: ; Lock04: | MOV ECX,[L_z] ; MOV ECX,[L_y] | CMP ECX,$0 ; CMP ECX,$0 | JE Lock09 ; JE Lock03 | JMP Lock10 ; JMP Lock04 | Lock11: ; Lock05: | MOV EBX,[z] ; MOV EBX,[y] | MOV [L_z],$0 ; MOV [L_y],$0 | ; forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r11d _litmus_P1_2_: xchgl %r11d,(%r10) _litmus_P1_3_: cmpl $0,%r11d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r11d _litmus_P1_7_: cmpl $0,%r11d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r8) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: movl (%r8),%eax _litmus_P1_14_: LitLock09: _litmus_P1_15_: movl $1,%r11d _litmus_P1_16_: xchgl %r11d,(%r9) _litmus_P1_17_: cmpl $0,%r11d _litmus_P1_18_: je LitLock11 _litmus_P1_19_: LitLock10: _litmus_P1_20_: movl (%r9),%r11d _litmus_P1_21_: cmpl $0,%r11d _litmus_P1_22_: je LitLock09 _litmus_P1_23_: jmp LitLock10 _litmus_P1_24_: LitLock11: _litmus_P1_25_: movl (%rdi),%edx _litmus_P1_26_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%ebx _litmus_P0_2_: xchgl %ebx,(%r10) _litmus_P0_3_: cmpl $0,%ebx _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r10),%ebx _litmus_P0_7_: cmpl $0,%ebx _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdi) _litmus_P0_12_: movl $0,(%r10) _litmus_P0_13_: movl $1,(%r9) _litmus_P0_14_: movl (%r9),%eax _litmus_P0_15_: LitLock03: _litmus_P0_16_: movl $1,%ebx _litmus_P0_17_: xchgl %ebx,(%r11) _litmus_P0_18_: cmpl $0,%ebx _litmus_P0_19_: je LitLock05 _litmus_P0_20_: LitLock04: _litmus_P0_21_: movl (%r11),%ebx _litmus_P0_22_: cmpl $0,%ebx _litmus_P0_23_: je LitLock03 _litmus_P0_24_: jmp LitLock04 _litmus_P0_25_: LitLock05: _litmus_P0_26_: movl (%r8),%edx _litmus_P0_27_: movl $0,(%r11) Test X009-L Required Histogram (3 states) 5316041:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 4729864:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 9954095:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) is validated Hash=7131de24dc5edc14043f0d4afec9deb3 Time X009-L 12.22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X010-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X010-L "Fre PodWR Fre PodWW Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EBX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_a],EBX | XCHG [L_x],ECX | XCHG [L_z],ECX ; CMP EBX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EBX,[L_a] | MOV ECX,[L_x] | MOV ECX,[L_z] ; CMP EBX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [a],$1 | MOV [x],$1 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_z],$0 ; Lock03: | MOV [y],$1 | MOV EAX,[z] ; MOV EBX,$1 | MOV EAX,[y] | Lock15: ; XCHG [L_x],EBX | Lock09: | MOV ECX,$1 ; CMP EBX,$0 | MOV ECX,$1 | XCHG [L_a],ECX ; JE Lock05 | XCHG [L_z],ECX | CMP ECX,$0 ; Lock04: | CMP ECX,$0 | JE Lock17 ; MOV EBX,[L_x] | JE Lock11 | Lock16: ; CMP EBX,$0 | Lock10: | MOV ECX,[L_a] ; JE Lock03 | MOV ECX,[L_z] | CMP ECX,$0 ; JMP Lock04 | CMP ECX,$0 | JE Lock15 ; Lock05: | JE Lock09 | JMP Lock16 ; MOV EAX,[x] | JMP Lock10 | Lock17: ; MOV [L_x],$0 | Lock11: | MOV EBX,[a] ; | MOV EBX,[z] | MOV [L_a],$0 ; | MOV [L_z],$0 | ; forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r9) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r9),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rdi) _litmus_P2_12_: movl $0,(%r9) _litmus_P2_13_: movl (%rdi),%eax _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r11d _litmus_P2_16_: xchgl %r11d,(%r10) _litmus_P2_17_: cmpl $0,%r11d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r10),%r11d _litmus_P2_21_: cmpl $0,%r11d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%r8),%edx _litmus_P2_26_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%ebx _litmus_P1_2_: xchgl %ebx,(%r11) _litmus_P1_3_: cmpl $0,%ebx _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r11),%ebx _litmus_P1_7_: cmpl $0,%ebx _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r9) _litmus_P1_12_: movl $0,(%r11) _litmus_P1_13_: movl $1,(%r8) _litmus_P1_14_: movl (%r8),%eax _litmus_P1_15_: LitLock09: _litmus_P1_16_: movl $1,%ebx _litmus_P1_17_: xchgl %ebx,(%r10) _litmus_P1_18_: cmpl $0,%ebx _litmus_P1_19_: je LitLock11 _litmus_P1_20_: LitLock10: _litmus_P1_21_: movl (%r10),%ebx _litmus_P1_22_: cmpl $0,%ebx _litmus_P1_23_: je LitLock09 _litmus_P1_24_: jmp LitLock10 _litmus_P1_25_: LitLock11: _litmus_P1_26_: movl (%rdi),%edx _litmus_P1_27_: movl $0,(%r10) Test X010-L Required Histogram (7 states) 126315:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 150552:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2129669:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 176173:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2325070:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2326423:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 2765798:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=e3f4f38c2818cdfbc5b7982a9cded7f1 Time X010-L 12.16 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X011-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X011-L "Fre PodWW Wse PodWW Rfi PodRR Fre Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EAX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_a],EAX | XCHG [L_x],ECX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EAX,[L_a] | MOV ECX,[L_x] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [a],$1 | MOV [x],$2 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_z],$0 ; Lock03: | MOV [y],$1 | MOV EAX,[z] ; MOV EAX,$1 | MOV EAX,[y] | Lock15: ; XCHG [L_x],EAX | Lock09: | MOV ECX,$1 ; CMP EAX,$0 | MOV ECX,$1 | XCHG [L_a],ECX ; JE Lock05 | XCHG [L_z],ECX | CMP ECX,$0 ; Lock04: | CMP ECX,$0 | JE Lock17 ; MOV EAX,[L_x] | JE Lock11 | Lock16: ; CMP EAX,$0 | Lock10: | MOV ECX,[L_a] ; JE Lock03 | MOV ECX,[L_z] | CMP ECX,$0 ; JMP Lock04 | CMP ECX,$0 | JE Lock15 ; Lock05: | JE Lock09 | JMP Lock16 ; MOV [x],$1 | JMP Lock10 | Lock17: ; MOV [L_x],$0 | Lock11: | MOV EBX,[a] ; | MOV EBX,[z] | MOV [L_a],$0 ; | MOV [L_z],$0 | ; forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r9) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r9),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rdi) _litmus_P2_12_: movl $0,(%r9) _litmus_P2_13_: movl (%rdi),%eax _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r11d _litmus_P2_16_: xchgl %r11d,(%r10) _litmus_P2_17_: cmpl $0,%r11d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r10),%r11d _litmus_P2_21_: cmpl $0,%r11d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%r8),%edx _litmus_P2_26_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%ebx _litmus_P1_2_: xchgl %ebx,(%r11) _litmus_P1_3_: cmpl $0,%ebx _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r11),%ebx _litmus_P1_7_: cmpl $0,%ebx _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r9) _litmus_P1_12_: movl $0,(%r11) _litmus_P1_13_: movl $1,(%r8) _litmus_P1_14_: movl (%r8),%eax _litmus_P1_15_: LitLock09: _litmus_P1_16_: movl $1,%ebx _litmus_P1_17_: xchgl %ebx,(%r10) _litmus_P1_18_: cmpl $0,%ebx _litmus_P1_19_: je LitLock11 _litmus_P1_20_: LitLock10: _litmus_P1_21_: movl (%r10),%ebx _litmus_P1_22_: cmpl $0,%ebx _litmus_P1_23_: je LitLock09 _litmus_P1_24_: jmp LitLock10 _litmus_P1_25_: LitLock11: _litmus_P1_26_: movl (%rdi),%edx _litmus_P1_27_: movl $0,(%r10) Test X011-L Required Histogram (7 states) 142594:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 2191494:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 2184408:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 2719381:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 136057:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 148252:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 2477814:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is validated Hash=c5e0688d8465dffbfda96c1958790b85 Time X011-L 12.27 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X012-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X012-L "Fre PodWR Fre Rfi PodRR" {} P0 | P1 ; Lock00: | Lock06: ; MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_y],EBX | XCHG [L_x],ECX ; CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 ; Lock01: | Lock07: ; MOV EBX,[L_y] | MOV ECX,[L_x] ; CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 ; JMP Lock01 | JMP Lock07 ; Lock02: | Lock08: ; MOV [y],$1 | MOV [x],$1 ; MOV [L_y],$0 | MOV [L_x],$0 ; Lock03: | MOV EAX,[x] ; MOV EBX,$1 | Lock09: ; XCHG [L_x],EBX | MOV ECX,$1 ; CMP EBX,$0 | XCHG [L_y],ECX ; JE Lock05 | CMP ECX,$0 ; Lock04: | JE Lock11 ; MOV EBX,[L_x] | Lock10: ; CMP EBX,$0 | MOV ECX,[L_y] ; JE Lock03 | CMP ECX,$0 ; JMP Lock04 | JE Lock09 ; Lock05: | JMP Lock10 ; MOV EAX,[x] | Lock11: ; MOV [L_x],$0 | MOV EBX,[y] ; | MOV [L_y],$0 ; forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r11d _litmus_P1_2_: xchgl %r11d,(%r10) _litmus_P1_3_: cmpl $0,%r11d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r11d _litmus_P1_7_: cmpl $0,%r11d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r8) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: movl (%r8),%eax _litmus_P1_14_: LitLock09: _litmus_P1_15_: movl $1,%r11d _litmus_P1_16_: xchgl %r11d,(%r9) _litmus_P1_17_: cmpl $0,%r11d _litmus_P1_18_: je LitLock11 _litmus_P1_19_: LitLock10: _litmus_P1_20_: movl (%r9),%r11d _litmus_P1_21_: cmpl $0,%r11d _litmus_P1_22_: je LitLock09 _litmus_P1_23_: jmp LitLock10 _litmus_P1_24_: LitLock11: _litmus_P1_25_: movl (%rdi),%edx _litmus_P1_26_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%rdi) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdi),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rcx) _litmus_P0_12_: movl $0,(%rdi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%r8) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r8),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rsi),%eax _litmus_P0_25_: movl $0,(%r8) Test X012-L Required Histogram (3 states) 5203169:>0:EAX=1; 1:EAX=1; 1:EBX=0; 5875711:>0:EAX=0; 1:EAX=1; 1:EBX=1; 8921120:>0:EAX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) is validated Hash=555b434fedcc592482ccf7d886e58184 Time X012-L 11.19 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X013-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X013-L "Fre PodWR Fre Rfi PodRR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EBX,$1 | MOV ECX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_a],EBX | XCHG [L_x],ECX | XCHG [L_y],EBX | XCHG [L_z],ECX ; CMP EBX,$0 | CMP ECX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EBX,[L_a] | MOV ECX,[L_x] | MOV EBX,[L_y] | MOV ECX,[L_z] ; CMP EBX,$0 | CMP ECX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | MOV EAX,[x] | Lock15: | MOV EAX,[z] ; MOV EBX,$1 | Lock09: | MOV EBX,$1 | Lock21: ; XCHG [L_x],EBX | MOV ECX,$1 | XCHG [L_z],EBX | MOV ECX,$1 ; CMP EBX,$0 | XCHG [L_y],ECX | CMP EBX,$0 | XCHG [L_a],ECX ; JE Lock05 | CMP ECX,$0 | JE Lock17 | CMP ECX,$0 ; Lock04: | JE Lock11 | Lock16: | JE Lock23 ; MOV EBX,[L_x] | Lock10: | MOV EBX,[L_z] | Lock22: ; CMP EBX,$0 | MOV ECX,[L_y] | CMP EBX,$0 | MOV ECX,[L_a] ; JE Lock03 | CMP ECX,$0 | JE Lock15 | CMP ECX,$0 ; JMP Lock04 | JE Lock09 | JMP Lock16 | JE Lock21 ; Lock05: | JMP Lock10 | Lock17: | JMP Lock22 ; MOV EAX,[x] | Lock11: | MOV EAX,[z] | Lock23: ; MOV [L_x],$0 | MOV EBX,[y] | MOV [L_z],$0 | MOV EBX,[a] ; | MOV [L_y],$0 | | MOV [L_a],$0 ; forall (1:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r11d _litmus_P3_2_: xchgl %r11d,(%r9) _litmus_P3_3_: cmpl $0,%r11d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r9),%r11d _litmus_P3_7_: cmpl $0,%r11d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rdi) _litmus_P3_12_: movl $0,(%r9) _litmus_P3_13_: movl (%rdi),%eax _litmus_P3_14_: LitLock21: _litmus_P3_15_: movl $1,%r11d _litmus_P3_16_: xchgl %r11d,(%r10) _litmus_P3_17_: cmpl $0,%r11d _litmus_P3_18_: je LitLock23 _litmus_P3_19_: LitLock22: _litmus_P3_20_: movl (%r10),%r11d _litmus_P3_21_: cmpl $0,%r11d _litmus_P3_22_: je LitLock21 _litmus_P3_23_: jmp LitLock22 _litmus_P3_24_: LitLock23: _litmus_P3_25_: movl (%r8),%edx _litmus_P3_26_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r11d _litmus_P1_2_: xchgl %r11d,(%r10) _litmus_P1_3_: cmpl $0,%r11d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r11d _litmus_P1_7_: cmpl $0,%r11d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r8) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: movl (%r8),%eax _litmus_P1_14_: LitLock09: _litmus_P1_15_: movl $1,%r11d _litmus_P1_16_: xchgl %r11d,(%r9) _litmus_P1_17_: cmpl $0,%r11d _litmus_P1_18_: je LitLock11 _litmus_P1_19_: LitLock10: _litmus_P1_20_: movl (%r9),%r11d _litmus_P1_21_: cmpl $0,%r11d _litmus_P1_22_: je LitLock09 _litmus_P1_23_: jmp LitLock10 _litmus_P1_24_: LitLock11: _litmus_P1_25_: movl (%rdi),%edx _litmus_P1_26_: movl $0,(%r9) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) Test X013-L Required Histogram (15 states) 3646 :>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 4653 :>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 178693:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 3244 :>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 426966:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 136173:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1610993:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 3969 :>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 145590:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 546274:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1720912:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 139192:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1372978:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1670761:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 2035956:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 3:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is validated Hash=fd5330456a3dcb8aac5fd7c7a77edf3f Time X013-L 16.17 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X014-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X014-L "Fre PodWW Wse Rfi PodRR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock15: | Lock21: ; MOV EAX,$1 | MOV ECX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_a],EAX | XCHG [L_x],ECX | XCHG [L_y],EBX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP ECX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock17 | JE Lock23 ; Lock01: | Lock07: | Lock16: | Lock22: ; MOV EAX,[L_a] | MOV ECX,[L_x] | MOV EBX,[L_y] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP ECX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock15 | JE Lock21 ; JMP Lock01 | JMP Lock07 | JMP Lock16 | JMP Lock22 ; Lock02: | Lock08: | Lock17: | Lock23: ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock18: | MOV EAX,[z] ; MOV EAX,$1 | MOV ECX,$1 | MOV EBX,$1 | Lock24: ; XCHG [L_x],EAX | XCHG [L_x],ECX | XCHG [L_z],EBX | MOV ECX,$1 ; CMP EAX,$0 | CMP ECX,$0 | CMP EBX,$0 | XCHG [L_a],ECX ; JE Lock05 | JE Lock11 | JE Lock20 | CMP ECX,$0 ; Lock04: | Lock10: | Lock19: | JE Lock26 ; MOV EAX,[L_x] | MOV ECX,[L_x] | MOV EBX,[L_z] | Lock25: ; CMP EAX,$0 | CMP ECX,$0 | CMP EBX,$0 | MOV ECX,[L_a] ; JE Lock03 | JE Lock09 | JE Lock18 | CMP ECX,$0 ; JMP Lock04 | JMP Lock10 | JMP Lock19 | JE Lock24 ; Lock05: | Lock11: | Lock20: | JMP Lock25 ; MOV [x],$1 | MOV EAX,[x] | MOV EAX,[z] | Lock26: ; MOV [L_x],$0 | MOV [L_x],$0 | MOV [L_z],$0 | MOV EBX,[a] ; | Lock12: | | MOV [L_a],$0 ; | MOV ECX,$1 | | ; | XCHG [L_y],ECX | | ; | CMP ECX,$0 | | ; | JE Lock14 | | ; | Lock13: | | ; | MOV ECX,[L_y] | | ; | CMP ECX,$0 | | ; | JE Lock12 | | ; | JMP Lock13 | | ; | Lock14: | | ; | MOV EBX,[y] | | ; | MOV [L_y],$0 | | ; forall (3:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: LitLock21: _litmus_P3_1_: movl $1,%r11d _litmus_P3_2_: xchgl %r11d,(%r9) _litmus_P3_3_: cmpl $0,%r11d _litmus_P3_4_: je LitLock23 _litmus_P3_5_: LitLock22: _litmus_P3_6_: movl (%r9),%r11d _litmus_P3_7_: cmpl $0,%r11d _litmus_P3_8_: je LitLock21 _litmus_P3_9_: jmp LitLock22 _litmus_P3_10_: LitLock23: _litmus_P3_11_: movl $1,(%rdi) _litmus_P3_12_: movl $0,(%r9) _litmus_P3_13_: movl (%rdi),%eax _litmus_P3_14_: LitLock24: _litmus_P3_15_: movl $1,%r11d _litmus_P3_16_: xchgl %r11d,(%r10) _litmus_P3_17_: cmpl $0,%r11d _litmus_P3_18_: je LitLock26 _litmus_P3_19_: LitLock25: _litmus_P3_20_: movl (%r10),%r11d _litmus_P3_21_: cmpl $0,%r11d _litmus_P3_22_: je LitLock24 _litmus_P3_23_: jmp LitLock25 _litmus_P3_24_: LitLock26: _litmus_P3_25_: movl (%r8),%edx _litmus_P3_26_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r11d _litmus_P1_2_: xchgl %r11d,(%r10) _litmus_P1_3_: cmpl $0,%r11d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r11d _litmus_P1_7_: cmpl $0,%r11d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r8) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r11d _litmus_P1_15_: xchgl %r11d,(%r10) _litmus_P1_16_: cmpl $0,%r11d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r10),%r11d _litmus_P1_20_: cmpl $0,%r11d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r8),%eax _litmus_P1_25_: movl $0,(%r10) _litmus_P1_26_: LitLock12: _litmus_P1_27_: movl $1,%r11d _litmus_P1_28_: xchgl %r11d,(%r9) _litmus_P1_29_: cmpl $0,%r11d _litmus_P1_30_: je LitLock14 _litmus_P1_31_: LitLock13: _litmus_P1_32_: movl (%r9),%r11d _litmus_P1_33_: cmpl $0,%r11d _litmus_P1_34_: je LitLock12 _litmus_P1_35_: jmp LitLock13 _litmus_P1_36_: LitLock14: _litmus_P1_37_: movl (%rdi),%edx _litmus_P1_38_: movl $0,(%r9) _litmus_P2_0_: LitLock15: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock17 _litmus_P2_5_: LitLock16: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock15 _litmus_P2_9_: jmp LitLock16 _litmus_P2_10_: LitLock17: _litmus_P2_11_: movl $1,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock18: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock20 _litmus_P2_18_: LitLock19: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock18 _litmus_P2_22_: jmp LitLock19 _litmus_P2_23_: LitLock20: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) Test X014-L Required Histogram (22 states) 1678 :>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 2541 :>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 143197:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 431 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 364610:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 68100 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 1463814:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 2120 :>1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 134421:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 131787:>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 1589855:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 30341 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 1292280:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 304721:>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 2011105:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 4969 :>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 1960 :>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 131559:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 5182 :>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 555418:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 128580:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 1631331:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (1:EAX=2 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is validated Hash=ad93bab0d2e21fd620cfa5d094e949ac Time X014-L 16.51 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X015-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X015-L "Fre PodWW Rfi PodRR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV ECX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_a],ECX | XCHG [L_y],EBX | XCHG [L_z],ECX ; CMP ECX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV ECX,[L_a] | MOV EBX,[L_y] | MOV ECX,[L_z] ; CMP ECX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [a],$1 | MOV [y],$1 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; MOV [x],$1 | Lock09: | MOV EAX,[z] ; MOV EAX,[x] | MOV EBX,$1 | Lock15: ; Lock03: | XCHG [L_z],EBX | MOV ECX,$1 ; MOV ECX,$1 | CMP EBX,$0 | XCHG [L_a],ECX ; XCHG [L_y],ECX | JE Lock11 | CMP ECX,$0 ; CMP ECX,$0 | Lock10: | JE Lock17 ; JE Lock05 | MOV EBX,[L_z] | Lock16: ; Lock04: | CMP EBX,$0 | MOV ECX,[L_a] ; MOV ECX,[L_y] | JE Lock09 | CMP ECX,$0 ; CMP ECX,$0 | JMP Lock10 | JE Lock15 ; JE Lock03 | Lock11: | JMP Lock16 ; JMP Lock04 | MOV EAX,[z] | Lock17: ; Lock05: | MOV [L_z],$0 | MOV EBX,[a] ; MOV EBX,[y] | | MOV [L_a],$0 ; MOV [L_y],$0 | | ; forall (0:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r9) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r9),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rdi) _litmus_P2_12_: movl $0,(%r9) _litmus_P2_13_: movl (%rdi),%eax _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r11d _litmus_P2_16_: xchgl %r11d,(%r10) _litmus_P2_17_: cmpl $0,%r11d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r10),%r11d _litmus_P2_21_: cmpl $0,%r11d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%r8),%edx _litmus_P2_26_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%ebx _litmus_P0_2_: xchgl %ebx,(%r11) _litmus_P0_3_: cmpl $0,%ebx _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r11),%ebx _litmus_P0_7_: cmpl $0,%ebx _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r9) _litmus_P0_12_: movl $0,(%r11) _litmus_P0_13_: movl $1,(%r8) _litmus_P0_14_: movl (%r8),%eax _litmus_P0_15_: LitLock03: _litmus_P0_16_: movl $1,%ebx _litmus_P0_17_: xchgl %ebx,(%r10) _litmus_P0_18_: cmpl $0,%ebx _litmus_P0_19_: je LitLock05 _litmus_P0_20_: LitLock04: _litmus_P0_21_: movl (%r10),%ebx _litmus_P0_22_: cmpl $0,%ebx _litmus_P0_23_: je LitLock03 _litmus_P0_24_: jmp LitLock04 _litmus_P0_25_: LitLock05: _litmus_P0_26_: movl (%rdi),%edx _litmus_P0_27_: movl $0,(%r10) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) Test X015-L Required Histogram (7 states) 144041:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 129867:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 2240501:>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 137879:>0:EAX=1; 0:EBX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2467429:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2159955:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 2720328:>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ 2:EAX=1 /\ (0:EBX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) is validated Hash=45c3527cd8faa12ed6df1d756257be0f Time X015-L 12.31 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X016-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X016-L "Fre PodWR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EBX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_z],EBX | XCHG [L_x],EBX | XCHG [L_y],ECX ; CMP EBX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EBX,[L_z] | MOV EBX,[L_x] | MOV ECX,[L_y] ; CMP EBX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [z],$1 | MOV [x],$1 | MOV [y],$1 ; MOV [L_z],$0 | MOV [L_x],$0 | MOV [L_y],$0 ; Lock03: | Lock09: | MOV EAX,[y] ; MOV EBX,$1 | MOV EBX,$1 | Lock15: ; XCHG [L_x],EBX | XCHG [L_y],EBX | MOV ECX,$1 ; CMP EBX,$0 | CMP EBX,$0 | XCHG [L_z],ECX ; JE Lock05 | JE Lock11 | CMP ECX,$0 ; Lock04: | Lock10: | JE Lock17 ; MOV EBX,[L_x] | MOV EBX,[L_y] | Lock16: ; CMP EBX,$0 | CMP EBX,$0 | MOV ECX,[L_z] ; JE Lock03 | JE Lock09 | CMP ECX,$0 ; JMP Lock04 | JMP Lock10 | JE Lock15 ; Lock05: | Lock11: | JMP Lock16 ; MOV EAX,[x] | MOV EAX,[y] | Lock17: ; MOV [L_x],$0 | MOV [L_y],$0 | MOV EBX,[z] ; | | MOV [L_z],$0 ; forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r10) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r8) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: movl (%r8),%eax _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r11d _litmus_P2_16_: xchgl %r11d,(%r9) _litmus_P2_17_: cmpl $0,%r11d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r9),%r11d _litmus_P2_21_: cmpl $0,%r11d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%rdi),%edx _litmus_P2_26_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%rdi) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdi),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rcx) _litmus_P0_12_: movl $0,(%rdi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%r8) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r8),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rsi),%eax _litmus_P0_25_: movl $0,(%r8) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) Test X016-L Required Histogram (7 states) 164328:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 149893:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 2236057:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 169613:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2463256:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2399389:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 2417464:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) is validated Hash=5505c985645df0029dc3bb34fd0841b0 Time X016-L 11.56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X017-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X017-L "Fre PodWR Fre PodWR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_a],EBX | XCHG [L_x],EBX | XCHG [L_y],EBX | XCHG [L_z],ECX ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EBX,[L_a] | MOV EBX,[L_x] | MOV EBX,[L_y] | MOV ECX,[L_z] ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | MOV EAX,[z] ; MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 | Lock21: ; XCHG [L_x],EBX | XCHG [L_y],EBX | XCHG [L_z],EBX | MOV ECX,$1 ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 | XCHG [L_a],ECX ; JE Lock05 | JE Lock11 | JE Lock17 | CMP ECX,$0 ; Lock04: | Lock10: | Lock16: | JE Lock23 ; MOV EBX,[L_x] | MOV EBX,[L_y] | MOV EBX,[L_z] | Lock22: ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 | MOV ECX,[L_a] ; JE Lock03 | JE Lock09 | JE Lock15 | CMP ECX,$0 ; JMP Lock04 | JMP Lock10 | JMP Lock16 | JE Lock21 ; Lock05: | Lock11: | Lock17: | JMP Lock22 ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] | Lock23: ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | MOV EBX,[a] ; | | | MOV [L_a],$0 ; forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r11d _litmus_P3_2_: xchgl %r11d,(%r9) _litmus_P3_3_: cmpl $0,%r11d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r9),%r11d _litmus_P3_7_: cmpl $0,%r11d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rdi) _litmus_P3_12_: movl $0,(%r9) _litmus_P3_13_: movl (%rdi),%eax _litmus_P3_14_: LitLock21: _litmus_P3_15_: movl $1,%r11d _litmus_P3_16_: xchgl %r11d,(%r10) _litmus_P3_17_: cmpl $0,%r11d _litmus_P3_18_: je LitLock23 _litmus_P3_19_: LitLock22: _litmus_P3_20_: movl (%r10),%r11d _litmus_P3_21_: cmpl $0,%r11d _litmus_P3_22_: je LitLock21 _litmus_P3_23_: jmp LitLock22 _litmus_P3_24_: LitLock23: _litmus_P3_25_: movl (%r8),%edx _litmus_P3_26_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) Test X017-L Required Histogram (15 states) 4135 :>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 2944 :>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 144220:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 3695 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 484926:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 123453:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1461581:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 6351 :>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 196066:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 508127:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1713237:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 172722:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1657427:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1558753:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1962363:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is validated Hash=b810eabdd9803bd5afa7348412900f13 Time X017-L 16.05 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X018-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X018-L "Fre PodWW Wse PodWR Fre PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EAX,$1 | MOV EBX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_a],EAX | XCHG [L_x],EBX | XCHG [L_y],EBX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EAX,[L_a] | MOV EBX,[L_x] | MOV EBX,[L_y] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | MOV EAX,[z] ; MOV EAX,$1 | MOV EBX,$1 | MOV EBX,$1 | Lock21: ; XCHG [L_x],EAX | XCHG [L_y],EBX | XCHG [L_z],EBX | MOV ECX,$1 ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 | XCHG [L_a],ECX ; JE Lock05 | JE Lock11 | JE Lock17 | CMP ECX,$0 ; Lock04: | Lock10: | Lock16: | JE Lock23 ; MOV EAX,[L_x] | MOV EBX,[L_y] | MOV EBX,[L_z] | Lock22: ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 | MOV ECX,[L_a] ; JE Lock03 | JE Lock09 | JE Lock15 | CMP ECX,$0 ; JMP Lock04 | JMP Lock10 | JMP Lock16 | JE Lock21 ; Lock05: | Lock11: | Lock17: | JMP Lock22 ; MOV [x],$1 | MOV EAX,[y] | MOV EAX,[z] | Lock23: ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | MOV EBX,[a] ; | | | MOV [L_a],$0 ; forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r11d _litmus_P3_2_: xchgl %r11d,(%r9) _litmus_P3_3_: cmpl $0,%r11d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r9),%r11d _litmus_P3_7_: cmpl $0,%r11d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rdi) _litmus_P3_12_: movl $0,(%r9) _litmus_P3_13_: movl (%rdi),%eax _litmus_P3_14_: LitLock21: _litmus_P3_15_: movl $1,%r11d _litmus_P3_16_: xchgl %r11d,(%r10) _litmus_P3_17_: cmpl $0,%r11d _litmus_P3_18_: je LitLock23 _litmus_P3_19_: LitLock22: _litmus_P3_20_: movl (%r10),%r11d _litmus_P3_21_: cmpl $0,%r11d _litmus_P3_22_: je LitLock21 _litmus_P3_23_: jmp LitLock22 _litmus_P3_24_: LitLock23: _litmus_P3_25_: movl (%r8),%edx _litmus_P3_26_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) Test X018-L Required Histogram (15 states) 4281 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 148843:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 488268:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 1436231:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 191561:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 1627197:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 1736521:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 1923282:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 4667 :>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 1986 :>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 145280:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 5841 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 555376:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 142974:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 1587692:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is validated Hash=1dd6aa2bb2bd41ed4671123e6eef4945 Time X018-L 16.59 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X019-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X019-L "Fre PodWW Wse PodWR Fre Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EAX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_z],EAX | XCHG [L_x],EBX | XCHG [L_y],ECX ; CMP EAX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EAX,[L_z] | MOV EBX,[L_x] | MOV ECX,[L_y] ; CMP EAX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [z],$1 | MOV [x],$2 | MOV [y],$1 ; MOV [L_z],$0 | MOV [L_x],$0 | MOV [L_y],$0 ; Lock03: | Lock09: | MOV EAX,[y] ; MOV EAX,$1 | MOV EBX,$1 | Lock15: ; XCHG [L_x],EAX | XCHG [L_y],EBX | MOV ECX,$1 ; CMP EAX,$0 | CMP EBX,$0 | XCHG [L_z],ECX ; JE Lock05 | JE Lock11 | CMP ECX,$0 ; Lock04: | Lock10: | JE Lock17 ; MOV EAX,[L_x] | MOV EBX,[L_y] | Lock16: ; CMP EAX,$0 | CMP EBX,$0 | MOV ECX,[L_z] ; JE Lock03 | JE Lock09 | CMP ECX,$0 ; JMP Lock04 | JMP Lock10 | JE Lock15 ; Lock05: | Lock11: | JMP Lock16 ; MOV [x],$1 | MOV EAX,[y] | Lock17: ; MOV [L_x],$0 | MOV [L_y],$0 | MOV EBX,[z] ; | | MOV [L_z],$0 ; forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r10) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r8) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: movl (%r8),%eax _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r11d _litmus_P2_16_: xchgl %r11d,(%r9) _litmus_P2_17_: cmpl $0,%r11d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r9),%r11d _litmus_P2_21_: cmpl $0,%r11d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%rdi),%edx _litmus_P2_26_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rcx) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rcx),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rax) _litmus_P0_12_: movl $0,(%rcx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rsi) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rsi),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rdx) _litmus_P0_25_: movl $0,(%rsi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) Test X019-L Required Histogram (7 states) 193769:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 2314741:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 2380642:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 2398196:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 147380:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 170999:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 2394273:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is validated Hash=c6fb307a4a2eda6777c0ef735ab6c92b Time X019-L 11.86 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X020-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X020-L "Fre PodWR Fre PodWW Wse PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EBX,$1 | MOV EAX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_a],EBX | XCHG [L_x],EAX | XCHG [L_y],EBX | XCHG [L_z],ECX ; CMP EBX,$0 | CMP EAX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EBX,[L_a] | MOV EAX,[L_x] | MOV EBX,[L_y] | MOV ECX,[L_z] ; CMP EBX,$0 | CMP EAX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$1 | MOV [y],$2 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | MOV EAX,[z] ; MOV EBX,$1 | MOV EAX,$1 | MOV EBX,$1 | Lock21: ; XCHG [L_x],EBX | XCHG [L_y],EAX | XCHG [L_z],EBX | MOV ECX,$1 ; CMP EBX,$0 | CMP EAX,$0 | CMP EBX,$0 | XCHG [L_a],ECX ; JE Lock05 | JE Lock11 | JE Lock17 | CMP ECX,$0 ; Lock04: | Lock10: | Lock16: | JE Lock23 ; MOV EBX,[L_x] | MOV EAX,[L_y] | MOV EBX,[L_z] | Lock22: ; CMP EBX,$0 | CMP EAX,$0 | CMP EBX,$0 | MOV ECX,[L_a] ; JE Lock03 | JE Lock09 | JE Lock15 | CMP ECX,$0 ; JMP Lock04 | JMP Lock10 | JMP Lock16 | JE Lock21 ; Lock05: | Lock11: | Lock17: | JMP Lock22 ; MOV EAX,[x] | MOV [y],$1 | MOV EAX,[z] | Lock23: ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | MOV EBX,[a] ; | | | MOV [L_a],$0 ; forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r11d _litmus_P3_2_: xchgl %r11d,(%r9) _litmus_P3_3_: cmpl $0,%r11d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r9),%r11d _litmus_P3_7_: cmpl $0,%r11d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rdi) _litmus_P3_12_: movl $0,(%r9) _litmus_P3_13_: movl (%rdi),%eax _litmus_P3_14_: LitLock21: _litmus_P3_15_: movl $1,%r11d _litmus_P3_16_: xchgl %r11d,(%r10) _litmus_P3_17_: cmpl $0,%r11d _litmus_P3_18_: je LitLock23 _litmus_P3_19_: LitLock22: _litmus_P3_20_: movl (%r10),%r11d _litmus_P3_21_: cmpl $0,%r11d _litmus_P3_22_: je LitLock21 _litmus_P3_23_: jmp LitLock22 _litmus_P3_24_: LitLock23: _litmus_P3_25_: movl (%r8),%edx _litmus_P3_26_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) Test X020-L Required Histogram (15 states) 5899 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 184573:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 148422:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 1546431:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 509424:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 1612459:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 1525367:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 1890438:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 4249 :>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 2855 :>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 499764:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 4069 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 193454:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 156453:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 1716143:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) is validated Hash=fb59bb0dd98a8fee7d7edde6d00adb40 Time X020-L 16.56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X021-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X021-L "Fre PodWW Wse PodWW Wse PodWR Fre Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EAX,$1 | MOV EAX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_a],EAX | XCHG [L_x],EAX | XCHG [L_y],EBX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EAX,[L_a] | MOV EAX,[L_x] | MOV EBX,[L_y] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | MOV EAX,[z] ; MOV EAX,$1 | MOV EAX,$1 | MOV EBX,$1 | Lock21: ; XCHG [L_x],EAX | XCHG [L_y],EAX | XCHG [L_z],EBX | MOV ECX,$1 ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 | XCHG [L_a],ECX ; JE Lock05 | JE Lock11 | JE Lock17 | CMP ECX,$0 ; Lock04: | Lock10: | Lock16: | JE Lock23 ; MOV EAX,[L_x] | MOV EAX,[L_y] | MOV EBX,[L_z] | Lock22: ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 | MOV ECX,[L_a] ; JE Lock03 | JE Lock09 | JE Lock15 | CMP ECX,$0 ; JMP Lock04 | JMP Lock10 | JMP Lock16 | JE Lock21 ; Lock05: | Lock11: | Lock17: | JMP Lock22 ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[z] | Lock23: ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | MOV EBX,[a] ; | | | MOV [L_a],$0 ; forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r11d _litmus_P3_2_: xchgl %r11d,(%r9) _litmus_P3_3_: cmpl $0,%r11d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r9),%r11d _litmus_P3_7_: cmpl $0,%r11d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rdi) _litmus_P3_12_: movl $0,(%r9) _litmus_P3_13_: movl (%rdi),%eax _litmus_P3_14_: LitLock21: _litmus_P3_15_: movl $1,%r11d _litmus_P3_16_: xchgl %r11d,(%r10) _litmus_P3_17_: cmpl $0,%r11d _litmus_P3_18_: je LitLock23 _litmus_P3_19_: LitLock22: _litmus_P3_20_: movl (%r10),%r11d _litmus_P3_21_: cmpl $0,%r11d _litmus_P3_22_: je LitLock21 _litmus_P3_23_: jmp LitLock22 _litmus_P3_24_: LitLock23: _litmus_P3_25_: movl (%r8),%edx _litmus_P3_26_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) Test X021-L Required Histogram (15 states) 140842:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 1343370:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 1739085:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 1871219:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 2974 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 125872:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 572923:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 1721839:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 4164 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 435821:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 190383:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 1660214:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 3660 :>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 3570 :>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 184064:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) is validated Hash=469528e3543b98c3f0af934ab5a2e07e Time X021-L 16.42 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X022-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X022-L "Fre PodWW Wse Rfi PodRR" {} P0 | P1 ; Lock00: | Lock06: ; MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_y],EAX | XCHG [L_x],ECX ; CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 ; Lock01: | Lock07: ; MOV EAX,[L_y] | MOV ECX,[L_x] ; CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 ; JMP Lock01 | JMP Lock07 ; Lock02: | Lock08: ; MOV [y],$1 | MOV [x],$2 ; MOV [L_y],$0 | MOV [L_x],$0 ; Lock03: | Lock09: ; MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_x],EAX | XCHG [L_x],ECX ; CMP EAX,$0 | CMP ECX,$0 ; JE Lock05 | JE Lock11 ; Lock04: | Lock10: ; MOV EAX,[L_x] | MOV ECX,[L_x] ; CMP EAX,$0 | CMP ECX,$0 ; JE Lock03 | JE Lock09 ; JMP Lock04 | JMP Lock10 ; Lock05: | Lock11: ; MOV [x],$1 | MOV EAX,[x] ; MOV [L_x],$0 | MOV [L_x],$0 ; | Lock12: ; | MOV ECX,$1 ; | XCHG [L_y],ECX ; | CMP ECX,$0 ; | JE Lock14 ; | Lock13: ; | MOV ECX,[L_y] ; | CMP ECX,$0 ; | JE Lock12 ; | JMP Lock13 ; | Lock14: ; | MOV EBX,[y] ; | MOV [L_y],$0 ; forall (1:EAX=2 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1) \/ 1:EAX=1 /\ 1:EBX=1 /\ x=1) Generated assembler _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r11d _litmus_P1_2_: xchgl %r11d,(%r10) _litmus_P1_3_: cmpl $0,%r11d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r11d _litmus_P1_7_: cmpl $0,%r11d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r8) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r11d _litmus_P1_15_: xchgl %r11d,(%r10) _litmus_P1_16_: cmpl $0,%r11d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r10),%r11d _litmus_P1_20_: cmpl $0,%r11d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r8),%eax _litmus_P1_25_: movl $0,(%r10) _litmus_P1_26_: LitLock12: _litmus_P1_27_: movl $1,%r11d _litmus_P1_28_: xchgl %r11d,(%r9) _litmus_P1_29_: cmpl $0,%r11d _litmus_P1_30_: je LitLock14 _litmus_P1_31_: LitLock13: _litmus_P1_32_: movl (%r9),%r11d _litmus_P1_33_: cmpl $0,%r11d _litmus_P1_34_: je LitLock12 _litmus_P1_35_: jmp LitLock13 _litmus_P1_36_: LitLock14: _litmus_P1_37_: movl (%rdi),%edx _litmus_P1_38_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rcx) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rcx),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rax) _litmus_P0_12_: movl $0,(%rcx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rsi) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rsi),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rdx) _litmus_P0_25_: movl $0,(%rsi) Test X022-L Required Histogram (4 states) 4276171:>1:EAX=2; 1:EBX=0; x=1; 855644:>1:EAX=1; 1:EBX=1; x=1; 8835972:>1:EAX=2; 1:EBX=1; x=1; 6032213:>1:EAX=2; 1:EBX=1; x=2; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (1:EAX=2 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1) \/ 1:EAX=1 /\ 1:EBX=1 /\ x=1) is validated Hash=7bdbbd7b854741c164f03b6ed3e5eb37 Time X022-L 11.90 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X023-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X023-L "Fre PodWW Wse Rfi PodRR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock15: | Lock21: ; MOV EAX,$1 | MOV ECX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_a],EAX | XCHG [L_x],ECX | XCHG [L_y],EAX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP ECX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock17 | JE Lock23 ; Lock01: | Lock07: | Lock16: | Lock22: ; MOV EAX,[L_a] | MOV ECX,[L_x] | MOV EAX,[L_y] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP ECX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock15 | JE Lock21 ; JMP Lock01 | JMP Lock07 | JMP Lock16 | JMP Lock22 ; Lock02: | Lock08: | Lock17: | Lock23: ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$2 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock18: | Lock24: ; MOV EAX,$1 | MOV ECX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_x],EAX | XCHG [L_x],ECX | XCHG [L_z],EAX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP ECX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock05 | JE Lock11 | JE Lock20 | JE Lock26 ; Lock04: | Lock10: | Lock19: | Lock25: ; MOV EAX,[L_x] | MOV ECX,[L_x] | MOV EAX,[L_z] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP ECX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock03 | JE Lock09 | JE Lock18 | JE Lock24 ; JMP Lock04 | JMP Lock10 | JMP Lock19 | JMP Lock25 ; Lock05: | Lock11: | Lock20: | Lock26: ; MOV [x],$1 | MOV EAX,[x] | MOV [z],$1 | MOV EAX,[z] ; MOV [L_x],$0 | MOV [L_x],$0 | MOV [L_z],$0 | MOV [L_z],$0 ; | Lock12: | | Lock27: ; | MOV ECX,$1 | | MOV ECX,$1 ; | XCHG [L_y],ECX | | XCHG [L_a],ECX ; | CMP ECX,$0 | | CMP ECX,$0 ; | JE Lock14 | | JE Lock29 ; | Lock13: | | Lock28: ; | MOV ECX,[L_y] | | MOV ECX,[L_a] ; | CMP ECX,$0 | | CMP ECX,$0 ; | JE Lock12 | | JE Lock27 ; | JMP Lock13 | | JMP Lock28 ; | Lock14: | | Lock29: ; | MOV EBX,[y] | | MOV EBX,[a] ; | MOV [L_y],$0 | | MOV [L_a],$0 ; forall (1:EAX=2 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) Generated assembler _litmus_P3_0_: LitLock21: _litmus_P3_1_: movl $1,%r11d _litmus_P3_2_: xchgl %r11d,(%r9) _litmus_P3_3_: cmpl $0,%r11d _litmus_P3_4_: je LitLock23 _litmus_P3_5_: LitLock22: _litmus_P3_6_: movl (%r9),%r11d _litmus_P3_7_: cmpl $0,%r11d _litmus_P3_8_: je LitLock21 _litmus_P3_9_: jmp LitLock22 _litmus_P3_10_: LitLock23: _litmus_P3_11_: movl $2,(%rdi) _litmus_P3_12_: movl $0,(%r9) _litmus_P3_13_: LitLock24: _litmus_P3_14_: movl $1,%r11d _litmus_P3_15_: xchgl %r11d,(%r9) _litmus_P3_16_: cmpl $0,%r11d _litmus_P3_17_: je LitLock26 _litmus_P3_18_: LitLock25: _litmus_P3_19_: movl (%r9),%r11d _litmus_P3_20_: cmpl $0,%r11d _litmus_P3_21_: je LitLock24 _litmus_P3_22_: jmp LitLock25 _litmus_P3_23_: LitLock26: _litmus_P3_24_: movl (%rdi),%eax _litmus_P3_25_: movl $0,(%r9) _litmus_P3_26_: LitLock27: _litmus_P3_27_: movl $1,%r11d _litmus_P3_28_: xchgl %r11d,(%r10) _litmus_P3_29_: cmpl $0,%r11d _litmus_P3_30_: je LitLock29 _litmus_P3_31_: LitLock28: _litmus_P3_32_: movl (%r10),%r11d _litmus_P3_33_: cmpl $0,%r11d _litmus_P3_34_: je LitLock27 _litmus_P3_35_: jmp LitLock28 _litmus_P3_36_: LitLock29: _litmus_P3_37_: movl (%r8),%edx _litmus_P3_38_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r11d _litmus_P1_2_: xchgl %r11d,(%r10) _litmus_P1_3_: cmpl $0,%r11d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r11d _litmus_P1_7_: cmpl $0,%r11d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r8) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r11d _litmus_P1_15_: xchgl %r11d,(%r10) _litmus_P1_16_: cmpl $0,%r11d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r10),%r11d _litmus_P1_20_: cmpl $0,%r11d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r8),%eax _litmus_P1_25_: movl $0,(%r10) _litmus_P1_26_: LitLock12: _litmus_P1_27_: movl $1,%r11d _litmus_P1_28_: xchgl %r11d,(%r9) _litmus_P1_29_: cmpl $0,%r11d _litmus_P1_30_: je LitLock14 _litmus_P1_31_: LitLock13: _litmus_P1_32_: movl (%r9),%r11d _litmus_P1_33_: cmpl $0,%r11d _litmus_P1_34_: je LitLock12 _litmus_P1_35_: jmp LitLock13 _litmus_P1_36_: LitLock14: _litmus_P1_37_: movl (%rdi),%edx _litmus_P1_38_: movl $0,(%r9) _litmus_P2_0_: LitLock15: _litmus_P2_1_: movl $1,%edi _litmus_P2_2_: xchgl %edi,(%rsi) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock17 _litmus_P2_5_: LitLock16: _litmus_P2_6_: movl (%rsi),%edi _litmus_P2_7_: cmpl $0,%edi _litmus_P2_8_: je LitLock15 _litmus_P2_9_: jmp LitLock16 _litmus_P2_10_: LitLock17: _litmus_P2_11_: movl $1,(%rdx) _litmus_P2_12_: movl $0,(%rsi) _litmus_P2_13_: LitLock18: _litmus_P2_14_: movl $1,%edi _litmus_P2_15_: xchgl %edi,(%rcx) _litmus_P2_16_: cmpl $0,%edi _litmus_P2_17_: je LitLock20 _litmus_P2_18_: LitLock19: _litmus_P2_19_: movl (%rcx),%edi _litmus_P2_20_: cmpl $0,%edi _litmus_P2_21_: je LitLock18 _litmus_P2_22_: jmp LitLock19 _litmus_P2_23_: LitLock20: _litmus_P2_24_: movl $1,(%rax) _litmus_P2_25_: movl $0,(%rcx) Test X023-L Required Histogram (32 states) 375 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 1119 :>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 27765 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 349 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 317842:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 66924 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 1312266:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 1006 :>1:EAX=1; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 63092 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 25882 :>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 227314:>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 30213 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 1293639:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 239386:>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 1770091:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 2788 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 1425 :>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 157305:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 2531 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 143123:>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 144089:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 1689971:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 1013 :>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 2875 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 119079:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 2894 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 122308:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 132695:>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 1493491:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 7158 :>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 4989 :>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 595003:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=2 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) \/ 1:EAX=1 /\ x=1 /\ (1:EBX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EBX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) is validated Hash=1a7d533e4d65ae5e45ab403f32872806 Time X023-L 17.29 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X024-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X024-L "Fre PodWW Rfi PodRR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV ECX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_a],ECX | XCHG [L_y],EAX | XCHG [L_z],ECX ; CMP ECX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV ECX,[L_a] | MOV EAX,[L_y] | MOV ECX,[L_z] ; CMP ECX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [a],$1 | MOV [y],$1 | MOV [z],$2 ; MOV [L_a],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; MOV [x],$1 | Lock09: | Lock15: ; MOV EAX,[x] | MOV EAX,$1 | MOV ECX,$1 ; Lock03: | XCHG [L_z],EAX | XCHG [L_z],ECX ; MOV ECX,$1 | CMP EAX,$0 | CMP ECX,$0 ; XCHG [L_y],ECX | JE Lock11 | JE Lock17 ; CMP ECX,$0 | Lock10: | Lock16: ; JE Lock05 | MOV EAX,[L_z] | MOV ECX,[L_z] ; Lock04: | CMP EAX,$0 | CMP ECX,$0 ; MOV ECX,[L_y] | JE Lock09 | JE Lock15 ; CMP ECX,$0 | JMP Lock10 | JMP Lock16 ; JE Lock03 | Lock11: | Lock17: ; JMP Lock04 | MOV [z],$1 | MOV EAX,[z] ; Lock05: | MOV [L_z],$0 | MOV [L_z],$0 ; MOV EBX,[y] | | Lock18: ; MOV [L_y],$0 | | MOV ECX,$1 ; | | XCHG [L_a],ECX ; | | CMP ECX,$0 ; | | JE Lock20 ; | | Lock19: ; | | MOV ECX,[L_a] ; | | CMP ECX,$0 ; | | JE Lock18 ; | | JMP Lock19 ; | | Lock20: ; | | MOV EBX,[a] ; | | MOV [L_a],$0 ; forall (0:EAX=1 /\ (0:EBX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ (z=2 \/ z=1)) \/ 2:EAX=1 /\ z=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ z=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ z=1))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r9) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r9),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%rdi) _litmus_P2_12_: movl $0,(%r9) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r11d _litmus_P2_15_: xchgl %r11d,(%r9) _litmus_P2_16_: cmpl $0,%r11d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r9),%r11d _litmus_P2_20_: cmpl $0,%r11d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rdi),%eax _litmus_P2_25_: movl $0,(%r9) _litmus_P2_26_: LitLock18: _litmus_P2_27_: movl $1,%r11d _litmus_P2_28_: xchgl %r11d,(%r10) _litmus_P2_29_: cmpl $0,%r11d _litmus_P2_30_: je LitLock20 _litmus_P2_31_: LitLock19: _litmus_P2_32_: movl (%r10),%r11d _litmus_P2_33_: cmpl $0,%r11d _litmus_P2_34_: je LitLock18 _litmus_P2_35_: jmp LitLock19 _litmus_P2_36_: LitLock20: _litmus_P2_37_: movl (%r8),%edx _litmus_P2_38_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%ebx _litmus_P0_2_: xchgl %ebx,(%r11) _litmus_P0_3_: cmpl $0,%ebx _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r11),%ebx _litmus_P0_7_: cmpl $0,%ebx _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r9) _litmus_P0_12_: movl $0,(%r11) _litmus_P0_13_: movl $1,(%r8) _litmus_P0_14_: movl (%r8),%eax _litmus_P0_15_: LitLock03: _litmus_P0_16_: movl $1,%ebx _litmus_P0_17_: xchgl %ebx,(%r10) _litmus_P0_18_: cmpl $0,%ebx _litmus_P0_19_: je LitLock05 _litmus_P0_20_: LitLock04: _litmus_P0_21_: movl (%r10),%ebx _litmus_P0_22_: cmpl $0,%ebx _litmus_P0_23_: je LitLock03 _litmus_P0_24_: jmp LitLock04 _litmus_P0_25_: LitLock05: _litmus_P0_26_: movl (%rdi),%edx _litmus_P0_27_: movl $0,(%r10) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) Test X024-L Required Histogram (10 states) 18108 :>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=0; z=1; 119172:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=0; z=1; 1863288:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=1; 56477 :>0:EAX=1; 0:EBX=0; 2:EAX=1; 2:EBX=1; z=1; 295678:>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=1; z=1; 2003023:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=1; 2758720:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=1; 115974:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=2; 130797:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=2; 2638763:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (0:EBX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ (z=2 \/ z=1)) \/ 2:EAX=1 /\ z=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EBX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (z=2 \/ z=1) \/ 2:EBX=0 /\ z=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ z=1))) is validated Hash=7c180ef697555e3f9e86bac0cbb8be4d Time X024-L 12.70 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X025-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X025-L "Fre PodWR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EBX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_z],EBX | XCHG [L_x],EAX | XCHG [L_y],ECX ; CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EBX,[L_z] | MOV EAX,[L_x] | MOV ECX,[L_y] ; CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [z],$1 | MOV [x],$1 | MOV [y],$2 ; MOV [L_z],$0 | MOV [L_x],$0 | MOV [L_y],$0 ; Lock03: | Lock09: | Lock15: ; MOV EBX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_x],EBX | XCHG [L_y],EAX | XCHG [L_y],ECX ; CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock05 | JE Lock11 | JE Lock17 ; Lock04: | Lock10: | Lock16: ; MOV EBX,[L_x] | MOV EAX,[L_y] | MOV ECX,[L_y] ; CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock03 | JE Lock09 | JE Lock15 ; JMP Lock04 | JMP Lock10 | JMP Lock16 ; Lock05: | Lock11: | Lock17: ; MOV EAX,[x] | MOV [y],$1 | MOV EAX,[y] ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_y],$0 ; | | Lock18: ; | | MOV ECX,$1 ; | | XCHG [L_z],ECX ; | | CMP ECX,$0 ; | | JE Lock20 ; | | Lock19: ; | | MOV ECX,[L_z] ; | | CMP ECX,$0 ; | | JE Lock18 ; | | JMP Lock19 ; | | Lock20: ; | | MOV EBX,[z] ; | | MOV [L_z],$0 ; forall (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ y=1)) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r10) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r8) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r11d _litmus_P2_15_: xchgl %r11d,(%r10) _litmus_P2_16_: cmpl $0,%r11d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r10),%r11d _litmus_P2_20_: cmpl $0,%r11d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r8),%eax _litmus_P2_25_: movl $0,(%r10) _litmus_P2_26_: LitLock18: _litmus_P2_27_: movl $1,%r11d _litmus_P2_28_: xchgl %r11d,(%r9) _litmus_P2_29_: cmpl $0,%r11d _litmus_P2_30_: je LitLock20 _litmus_P2_31_: LitLock19: _litmus_P2_32_: movl (%r9),%r11d _litmus_P2_33_: cmpl $0,%r11d _litmus_P2_34_: je LitLock18 _litmus_P2_35_: jmp LitLock19 _litmus_P2_36_: LitLock20: _litmus_P2_37_: movl (%rdi),%edx _litmus_P2_38_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%rdi) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdi),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rcx) _litmus_P0_12_: movl $0,(%rdi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%r8) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r8),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rsi),%eax _litmus_P0_25_: movl $0,(%r8) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) Test X025-L Required Histogram (10 states) 18155 :>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 124902:>0:EAX=0; 2:EAX=2; 2:EBX=0; y=1; 1762117:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=1; 61626 :>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 285004:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 2359762:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=1; 2506612:>0:EAX=1; 2:EAX=2; 2:EBX=1; y=1; 108084:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=2; 167030:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=2; 2606708:>0:EAX=1; 2:EAX=2; 2:EBX=1; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (2:EAX=2 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1) \/ 2:EAX=1 /\ 2:EBX=1 /\ y=1)) is validated Hash=0e291bfca948389fabbefcae597cca91 Time X025-L 11.79 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X026-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X026-L "Fre PodWR Fre PodWR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EBX,$1 | MOV EBX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_a],EBX | XCHG [L_x],EBX | XCHG [L_y],EAX | XCHG [L_z],ECX ; CMP EBX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EBX,[L_a] | MOV EBX,[L_x] | MOV EAX,[L_y] | MOV ECX,[L_z] ; CMP EBX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$2 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | Lock21: ; MOV EBX,$1 | MOV EBX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_x],EBX | XCHG [L_y],EBX | XCHG [L_z],EAX | XCHG [L_z],ECX ; CMP EBX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock05 | JE Lock11 | JE Lock17 | JE Lock23 ; Lock04: | Lock10: | Lock16: | Lock22: ; MOV EBX,[L_x] | MOV EBX,[L_y] | MOV EAX,[L_z] | MOV ECX,[L_z] ; CMP EBX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock03 | JE Lock09 | JE Lock15 | JE Lock21 ; JMP Lock04 | JMP Lock10 | JMP Lock16 | JMP Lock22 ; Lock05: | Lock11: | Lock17: | Lock23: ; MOV EAX,[x] | MOV EAX,[y] | MOV [z],$1 | MOV EAX,[z] ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | MOV [L_z],$0 ; | | | Lock24: ; | | | MOV ECX,$1 ; | | | XCHG [L_a],ECX ; | | | CMP ECX,$0 ; | | | JE Lock26 ; | | | Lock25: ; | | | MOV ECX,[L_a] ; | | | CMP ECX,$0 ; | | | JE Lock24 ; | | | JMP Lock25 ; | | | Lock26: ; | | | MOV EBX,[a] ; | | | MOV [L_a],$0 ; forall (0:EAX=1 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r11d _litmus_P3_2_: xchgl %r11d,(%r9) _litmus_P3_3_: cmpl $0,%r11d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r9),%r11d _litmus_P3_7_: cmpl $0,%r11d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%rdi) _litmus_P3_12_: movl $0,(%r9) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r11d _litmus_P3_15_: xchgl %r11d,(%r9) _litmus_P3_16_: cmpl $0,%r11d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r9),%r11d _litmus_P3_20_: cmpl $0,%r11d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%rdi),%eax _litmus_P3_25_: movl $0,(%r9) _litmus_P3_26_: LitLock24: _litmus_P3_27_: movl $1,%r11d _litmus_P3_28_: xchgl %r11d,(%r10) _litmus_P3_29_: cmpl $0,%r11d _litmus_P3_30_: je LitLock26 _litmus_P3_31_: LitLock25: _litmus_P3_32_: movl (%r10),%r11d _litmus_P3_33_: cmpl $0,%r11d _litmus_P3_34_: je LitLock24 _litmus_P3_35_: jmp LitLock25 _litmus_P3_36_: LitLock26: _litmus_P3_37_: movl (%r8),%edx _litmus_P3_38_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%edi _litmus_P2_2_: xchgl %edi,(%rsi) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rsi),%edi _litmus_P2_7_: cmpl $0,%edi _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rdx) _litmus_P2_12_: movl $0,(%rsi) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%edi _litmus_P2_15_: xchgl %edi,(%rcx) _litmus_P2_16_: cmpl $0,%edi _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rcx),%edi _litmus_P2_20_: cmpl $0,%edi _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%rax) _litmus_P2_25_: movl $0,(%rcx) Test X026-L Required Histogram (22 states) 276 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 1496 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 22692 :>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 1895 :>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 426298:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 115706:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 1208469:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 3093 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 79525 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 108707:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 251075:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 165028:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 1810613:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 1380014:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 1843542:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 2334 :>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=2; 3954 :>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 111085:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 6541 :>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 198114:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 534632:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; 1724911:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1) \/ 3:EAX=1 /\ 3:EBX=1 /\ z=1))) is validated Hash=2e451adddb1aa9f22593d14d4aed782a Time X026-L 16.47 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X027-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X027-L "Fre PodWW Wse PodWR Fre PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EAX,$1 | MOV EBX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_a],EAX | XCHG [L_x],EBX | XCHG [L_y],EAX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EAX,[L_a] | MOV EBX,[L_x] | MOV EAX,[L_y] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$2 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | Lock21: ; MOV EAX,$1 | MOV EBX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_x],EAX | XCHG [L_y],EBX | XCHG [L_z],EAX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock05 | JE Lock11 | JE Lock17 | JE Lock23 ; Lock04: | Lock10: | Lock16: | Lock22: ; MOV EAX,[L_x] | MOV EBX,[L_y] | MOV EAX,[L_z] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock03 | JE Lock09 | JE Lock15 | JE Lock21 ; JMP Lock04 | JMP Lock10 | JMP Lock16 | JMP Lock22 ; Lock05: | Lock11: | Lock17: | Lock23: ; MOV [x],$1 | MOV EAX,[y] | MOV [z],$1 | MOV EAX,[z] ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | MOV [L_z],$0 ; | | | Lock24: ; | | | MOV ECX,$1 ; | | | XCHG [L_a],ECX ; | | | CMP ECX,$0 ; | | | JE Lock26 ; | | | Lock25: ; | | | MOV ECX,[L_a] ; | | | CMP ECX,$0 ; | | | JE Lock24 ; | | | JMP Lock25 ; | | | Lock26: ; | | | MOV EBX,[a] ; | | | MOV [L_a],$0 ; forall (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r11d _litmus_P3_2_: xchgl %r11d,(%r9) _litmus_P3_3_: cmpl $0,%r11d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r9),%r11d _litmus_P3_7_: cmpl $0,%r11d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%rdi) _litmus_P3_12_: movl $0,(%r9) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r11d _litmus_P3_15_: xchgl %r11d,(%r9) _litmus_P3_16_: cmpl $0,%r11d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r9),%r11d _litmus_P3_20_: cmpl $0,%r11d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%rdi),%eax _litmus_P3_25_: movl $0,(%r9) _litmus_P3_26_: LitLock24: _litmus_P3_27_: movl $1,%r11d _litmus_P3_28_: xchgl %r11d,(%r10) _litmus_P3_29_: cmpl $0,%r11d _litmus_P3_30_: je LitLock26 _litmus_P3_31_: LitLock25: _litmus_P3_32_: movl (%r10),%r11d _litmus_P3_33_: cmpl $0,%r11d _litmus_P3_34_: je LitLock24 _litmus_P3_35_: jmp LitLock25 _litmus_P3_36_: LitLock26: _litmus_P3_37_: movl (%r8),%edx _litmus_P3_38_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%edi _litmus_P2_2_: xchgl %edi,(%rsi) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rsi),%edi _litmus_P2_7_: cmpl $0,%edi _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rdx) _litmus_P2_12_: movl $0,(%rsi) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%edi _litmus_P2_15_: xchgl %edi,(%rcx) _litmus_P2_16_: cmpl $0,%edi _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rcx),%edi _litmus_P2_20_: cmpl $0,%edi _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%rax) _litmus_P2_25_: movl $0,(%rcx) Test X027-L Required Histogram (22 states) 398 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 22483 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 404674:>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 1152831:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 72221 :>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 266495:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 1670075:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 1787682:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 1204 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 1417 :>1:EAX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 98906 :>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 3035 :>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 124988:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 165349:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 1503143:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 2463 :>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 107963:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 191528:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 1870270:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 2345 :>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 6311 :>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 544219:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1))) is validated Hash=5aaeaf3a2c26ebdc2c494f504b7b6870 Time X027-L 16.71 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X028-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X028-L "Fre PodWW Wse PodWW Wse Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EAX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_z],EAX | XCHG [L_x],EAX | XCHG [L_y],ECX ; CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EAX,[L_z] | MOV EAX,[L_x] | MOV ECX,[L_y] ; CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [z],$1 | MOV [x],$2 | MOV [y],$2 ; MOV [L_z],$0 | MOV [L_x],$0 | MOV [L_y],$0 ; Lock03: | Lock09: | Lock15: ; MOV EAX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_x],EAX | XCHG [L_y],EAX | XCHG [L_y],ECX ; CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock05 | JE Lock11 | JE Lock17 ; Lock04: | Lock10: | Lock16: ; MOV EAX,[L_x] | MOV EAX,[L_y] | MOV ECX,[L_y] ; CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock03 | JE Lock09 | JE Lock15 ; JMP Lock04 | JMP Lock10 | JMP Lock16 ; Lock05: | Lock11: | Lock17: ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[y] ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_y],$0 ; | | Lock18: ; | | MOV ECX,$1 ; | | XCHG [L_z],ECX ; | | CMP ECX,$0 ; | | JE Lock20 ; | | Lock19: ; | | MOV ECX,[L_z] ; | | CMP ECX,$0 ; | | JE Lock18 ; | | JMP Lock19 ; | | Lock20: ; | | MOV EBX,[z] ; | | MOV [L_z],$0 ; forall (2:EAX=2 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r11d _litmus_P2_2_: xchgl %r11d,(%r10) _litmus_P2_3_: cmpl $0,%r11d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r11d _litmus_P2_7_: cmpl $0,%r11d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r8) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r11d _litmus_P2_15_: xchgl %r11d,(%r10) _litmus_P2_16_: cmpl $0,%r11d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r10),%r11d _litmus_P2_20_: cmpl $0,%r11d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r8),%eax _litmus_P2_25_: movl $0,(%r10) _litmus_P2_26_: LitLock18: _litmus_P2_27_: movl $1,%r11d _litmus_P2_28_: xchgl %r11d,(%r9) _litmus_P2_29_: cmpl $0,%r11d _litmus_P2_30_: je LitLock20 _litmus_P2_31_: LitLock19: _litmus_P2_32_: movl (%r9),%r11d _litmus_P2_33_: cmpl $0,%r11d _litmus_P2_34_: je LitLock18 _litmus_P2_35_: jmp LitLock19 _litmus_P2_36_: LitLock20: _litmus_P2_37_: movl (%rdi),%edx _litmus_P2_38_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rcx) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rcx),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rax) _litmus_P0_12_: movl $0,(%rcx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rsi) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rsi),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rdx) _litmus_P0_25_: movl $0,(%rsi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) Test X028-L Required Histogram (10 states) 27539 :>2:EAX=1; 2:EBX=0; x=1; y=1; 1736704:>2:EAX=2; 2:EBX=0; x=1; y=1; 287121:>2:EAX=1; 2:EBX=1; x=1; y=1; 2288192:>2:EAX=2; 2:EBX=1; x=1; y=1; 114583:>2:EAX=2; 2:EBX=0; x=2; y=1; 67204 :>2:EAX=1; 2:EBX=1; x=2; y=1; 2619459:>2:EAX=2; 2:EBX=1; x=2; y=1; 126573:>2:EAX=2; 2:EBX=0; x=1; y=2; 2545387:>2:EAX=2; 2:EBX=1; x=1; y=2; 187238:>2:EAX=2; 2:EBX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=2 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=1 /\ y=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1)) is validated Hash=3e086b2e5c2ef23417572f4cf4dd971d Time X028-L 12.02 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X029-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X029-L "Fre PodWR Fre PodWW Wse PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EBX,$1 | MOV EAX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_a],EBX | XCHG [L_x],EAX | XCHG [L_y],EAX | XCHG [L_z],ECX ; CMP EBX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EBX,[L_a] | MOV EAX,[L_x] | MOV EAX,[L_y] | MOV ECX,[L_z] ; CMP EBX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$1 | MOV [y],$2 | MOV [z],$2 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | Lock21: ; MOV EBX,$1 | MOV EAX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_x],EBX | XCHG [L_y],EAX | XCHG [L_z],EAX | XCHG [L_z],ECX ; CMP EBX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock05 | JE Lock11 | JE Lock17 | JE Lock23 ; Lock04: | Lock10: | Lock16: | Lock22: ; MOV EBX,[L_x] | MOV EAX,[L_y] | MOV EAX,[L_z] | MOV ECX,[L_z] ; CMP EBX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock03 | JE Lock09 | JE Lock15 | JE Lock21 ; JMP Lock04 | JMP Lock10 | JMP Lock16 | JMP Lock22 ; Lock05: | Lock11: | Lock17: | Lock23: ; MOV EAX,[x] | MOV [y],$1 | MOV [z],$1 | MOV EAX,[z] ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | MOV [L_z],$0 ; | | | Lock24: ; | | | MOV ECX,$1 ; | | | XCHG [L_a],ECX ; | | | CMP ECX,$0 ; | | | JE Lock26 ; | | | Lock25: ; | | | MOV ECX,[L_a] ; | | | CMP ECX,$0 ; | | | JE Lock24 ; | | | JMP Lock25 ; | | | Lock26: ; | | | MOV EBX,[a] ; | | | MOV [L_a],$0 ; forall (0:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r11d _litmus_P3_2_: xchgl %r11d,(%r9) _litmus_P3_3_: cmpl $0,%r11d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r9),%r11d _litmus_P3_7_: cmpl $0,%r11d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%rdi) _litmus_P3_12_: movl $0,(%r9) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r11d _litmus_P3_15_: xchgl %r11d,(%r9) _litmus_P3_16_: cmpl $0,%r11d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r9),%r11d _litmus_P3_20_: cmpl $0,%r11d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%rdi),%eax _litmus_P3_25_: movl $0,(%r9) _litmus_P3_26_: LitLock24: _litmus_P3_27_: movl $1,%r11d _litmus_P3_28_: xchgl %r11d,(%r10) _litmus_P3_29_: cmpl $0,%r11d _litmus_P3_30_: je LitLock26 _litmus_P3_31_: LitLock25: _litmus_P3_32_: movl (%r10),%r11d _litmus_P3_33_: cmpl $0,%r11d _litmus_P3_34_: je LitLock24 _litmus_P3_35_: jmp LitLock25 _litmus_P3_36_: LitLock26: _litmus_P3_37_: movl (%r8),%edx _litmus_P3_38_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%edi _litmus_P2_2_: xchgl %edi,(%rsi) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rsi),%edi _litmus_P2_7_: cmpl $0,%edi _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%rdx) _litmus_P2_12_: movl $0,(%rsi) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%edi _litmus_P2_15_: xchgl %edi,(%rcx) _litmus_P2_16_: cmpl $0,%edi _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rcx),%edi _litmus_P2_20_: cmpl $0,%edi _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%rax) _litmus_P2_25_: movl $0,(%rcx) Test X029-L Required Histogram (22 states) 1491 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 20101 :>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 113769:>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=1; 1192911:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=1; 121883:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 261726:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 1517843:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=1; 1736919:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=1; 537 :>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 2665 :>0:EAX=0; 3:EAX=2; 3:EBX=0; y=2; z=1; 396089:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=1; 2474 :>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 78126 :>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 162754:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=1; 1617948:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=1; 4471 :>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=2; 142121:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=2; 559393:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=2; 1870694:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=2; 4798 :>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=2; 4519 :>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=2; 186768:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (3:EAX=2 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1))) is validated Hash=d35e5bcd183bdc338c51f6aef122ac59 Time X029-L 16.76 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X030-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X030-L "Fre PodWW Wse PodWW Wse PodWW Wse Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EAX,$1 | MOV EAX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_a],EAX | XCHG [L_x],EAX | XCHG [L_y],EAX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EAX,[L_a] | MOV EAX,[L_x] | MOV EAX,[L_y] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$2 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | Lock21: ; MOV EAX,$1 | MOV EAX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_x],EAX | XCHG [L_y],EAX | XCHG [L_z],EAX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock05 | JE Lock11 | JE Lock17 | JE Lock23 ; Lock04: | Lock10: | Lock16: | Lock22: ; MOV EAX,[L_x] | MOV EAX,[L_y] | MOV EAX,[L_z] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock03 | JE Lock09 | JE Lock15 | JE Lock21 ; JMP Lock04 | JMP Lock10 | JMP Lock16 | JMP Lock22 ; Lock05: | Lock11: | Lock17: | Lock23: ; MOV [x],$1 | MOV [y],$1 | MOV [z],$1 | MOV EAX,[z] ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | MOV [L_z],$0 ; | | | Lock24: ; | | | MOV ECX,$1 ; | | | XCHG [L_a],ECX ; | | | CMP ECX,$0 ; | | | JE Lock26 ; | | | Lock25: ; | | | MOV ECX,[L_a] ; | | | CMP ECX,$0 ; | | | JE Lock24 ; | | | JMP Lock25 ; | | | Lock26: ; | | | MOV EBX,[a] ; | | | MOV [L_a],$0 ; forall (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r11d _litmus_P3_2_: xchgl %r11d,(%r9) _litmus_P3_3_: cmpl $0,%r11d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r9),%r11d _litmus_P3_7_: cmpl $0,%r11d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%rdi) _litmus_P3_12_: movl $0,(%r9) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r11d _litmus_P3_15_: xchgl %r11d,(%r9) _litmus_P3_16_: cmpl $0,%r11d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r9),%r11d _litmus_P3_20_: cmpl $0,%r11d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%rdi),%eax _litmus_P3_25_: movl $0,(%r9) _litmus_P3_26_: LitLock24: _litmus_P3_27_: movl $1,%r11d _litmus_P3_28_: xchgl %r11d,(%r10) _litmus_P3_29_: cmpl $0,%r11d _litmus_P3_30_: je LitLock26 _litmus_P3_31_: LitLock25: _litmus_P3_32_: movl (%r10),%r11d _litmus_P3_33_: cmpl $0,%r11d _litmus_P3_34_: je LitLock24 _litmus_P3_35_: jmp LitLock25 _litmus_P3_36_: LitLock26: _litmus_P3_37_: movl (%r8),%edx _litmus_P3_38_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%edi _litmus_P2_2_: xchgl %edi,(%rsi) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rsi),%edi _litmus_P2_7_: cmpl $0,%edi _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%rdx) _litmus_P2_12_: movl $0,(%rsi) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%edi _litmus_P2_15_: xchgl %edi,(%rcx) _litmus_P2_16_: cmpl $0,%edi _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rcx),%edi _litmus_P2_20_: cmpl $0,%edi _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%rax) _litmus_P2_25_: movl $0,(%rcx) Test X030-L Required Histogram (22 states) 30415 :>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 1148737:>3:EAX=2; 3:EBX=0; x=1; y=1; z=1; 245450:>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 1625133:>3:EAX=2; 3:EBX=1; x=1; y=1; z=1; 1489 :>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 122684:>3:EAX=2; 3:EBX=0; x=2; y=1; z=1; 133536:>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 1695223:>3:EAX=2; 3:EBX=1; x=2; y=1; z=1; 574 :>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 398375:>3:EAX=2; 3:EBX=0; x=1; y=2; z=1; 81912 :>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 1686063:>3:EAX=2; 3:EBX=1; x=1; y=2; z=1; 2597 :>3:EAX=2; 3:EBX=0; x=2; y=2; z=1; 2680 :>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 179897:>3:EAX=2; 3:EBX=1; x=2; y=2; z=1; 123069:>3:EAX=2; 3:EBX=0; x=1; y=1; z=2; 1731846:>3:EAX=2; 3:EBX=1; x=1; y=1; z=2; 4199 :>3:EAX=2; 3:EBX=0; x=2; y=1; z=2; 578292:>3:EAX=2; 3:EBX=1; x=2; y=1; z=2; 2917 :>3:EAX=2; 3:EBX=0; x=1; y=2; z=2; 199371:>3:EAX=2; 3:EBX=1; x=1; y=2; z=2; 5541 :>3:EAX=2; 3:EBX=1; x=2; y=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=2 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) \/ 3:EAX=1 /\ z=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) is validated Hash=31124f99c1f38434067489b3de92cf73 Time X030-L 17.22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X031-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X031-L "Fre PodWW Rfi PodRR Fre PodWW Rfi PodRR" {} P0 | P1 ; Lock00: | Lock06: ; MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_a],ECX | XCHG [L_y],ECX ; CMP ECX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 ; Lock01: | Lock07: ; MOV ECX,[L_a] | MOV ECX,[L_y] ; CMP ECX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 ; JMP Lock01 | JMP Lock07 ; Lock02: | Lock08: ; MOV [a],$1 | MOV [y],$1 ; MOV [L_a],$0 | MOV [L_y],$0 ; MOV [x],$1 | MOV [z],$1 ; MOV EAX,[x] | MOV EAX,[z] ; Lock03: | Lock09: ; MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_y],ECX | XCHG [L_a],ECX ; CMP ECX,$0 | CMP ECX,$0 ; JE Lock05 | JE Lock11 ; Lock04: | Lock10: ; MOV ECX,[L_y] | MOV ECX,[L_a] ; CMP ECX,$0 | CMP ECX,$0 ; JE Lock03 | JE Lock09 ; JMP Lock04 | JMP Lock10 ; Lock05: | Lock11: ; MOV EBX,[y] | MOV EBX,[a] ; MOV [L_y],$0 | MOV [L_a],$0 ; forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%ebx _litmus_P1_2_: xchgl %ebx,(%r10) _litmus_P1_3_: cmpl $0,%ebx _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%ebx _litmus_P1_7_: cmpl $0,%ebx _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r8) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: movl $1,(%rdi) _litmus_P1_14_: movl (%rdi),%eax _litmus_P1_15_: LitLock09: _litmus_P1_16_: movl $1,%ebx _litmus_P1_17_: xchgl %ebx,(%r11) _litmus_P1_18_: cmpl $0,%ebx _litmus_P1_19_: je LitLock11 _litmus_P1_20_: LitLock10: _litmus_P1_21_: movl (%r11),%ebx _litmus_P1_22_: cmpl $0,%ebx _litmus_P1_23_: je LitLock09 _litmus_P1_24_: jmp LitLock10 _litmus_P1_25_: LitLock11: _litmus_P1_26_: movl (%r9),%edx _litmus_P1_27_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%ebx _litmus_P0_2_: xchgl %ebx,(%r11) _litmus_P0_3_: cmpl $0,%ebx _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r11),%ebx _litmus_P0_7_: cmpl $0,%ebx _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r9) _litmus_P0_12_: movl $0,(%r11) _litmus_P0_13_: movl $1,(%r8) _litmus_P0_14_: movl (%r8),%eax _litmus_P0_15_: LitLock03: _litmus_P0_16_: movl $1,%ebx _litmus_P0_17_: xchgl %ebx,(%r10) _litmus_P0_18_: cmpl $0,%ebx _litmus_P0_19_: je LitLock05 _litmus_P0_20_: LitLock04: _litmus_P0_21_: movl (%r10),%ebx _litmus_P0_22_: cmpl $0,%ebx _litmus_P0_23_: je LitLock03 _litmus_P0_24_: jmp LitLock04 _litmus_P0_25_: LitLock05: _litmus_P0_26_: movl (%rdi),%edx _litmus_P0_27_: movl $0,(%r10) Test X031-L Required Histogram (3 states) 4845042:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 4819819:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 10335139:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (0:EAX=1 /\ 1:EAX=1 /\ (0:EBX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EBX=0 /\ 1:EBX=1)) is validated Hash=fc82de6a25980a2ec727e3cc77fec133 Time X031-L 13.03 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X032-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X032-L "Fre PodWR Fre PodWW Rfi PodRR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EBX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_b],EBX | XCHG [L_x],ECX | XCHG [L_z],ECX ; CMP EBX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EBX,[L_b] | MOV ECX,[L_x] | MOV ECX,[L_z] ; CMP EBX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [b],$1 | MOV [x],$1 | MOV [z],$1 ; MOV [L_b],$0 | MOV [L_x],$0 | MOV [L_z],$0 ; Lock03: | MOV [y],$1 | MOV [a],$1 ; MOV EBX,$1 | MOV EAX,[y] | MOV EAX,[a] ; XCHG [L_x],EBX | Lock09: | Lock15: ; CMP EBX,$0 | MOV ECX,$1 | MOV ECX,$1 ; JE Lock05 | XCHG [L_z],ECX | XCHG [L_b],ECX ; Lock04: | CMP ECX,$0 | CMP ECX,$0 ; MOV EBX,[L_x] | JE Lock11 | JE Lock17 ; CMP EBX,$0 | Lock10: | Lock16: ; JE Lock03 | MOV ECX,[L_z] | MOV ECX,[L_b] ; JMP Lock04 | CMP ECX,$0 | CMP ECX,$0 ; Lock05: | JE Lock09 | JE Lock15 ; MOV EAX,[x] | JMP Lock10 | JMP Lock16 ; MOV [L_x],$0 | Lock11: | Lock17: ; | MOV EBX,[z] | MOV EBX,[b] ; | MOV [L_z],$0 | MOV [L_b],$0 ; forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%ebx _litmus_P2_2_: xchgl %ebx,(%r10) _litmus_P2_3_: cmpl $0,%ebx _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%ebx _litmus_P2_7_: cmpl $0,%ebx _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rdi) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: movl $1,(%r9) _litmus_P2_14_: movl (%r9),%eax _litmus_P2_15_: LitLock15: _litmus_P2_16_: movl $1,%ebx _litmus_P2_17_: xchgl %ebx,(%r11) _litmus_P2_18_: cmpl $0,%ebx _litmus_P2_19_: je LitLock17 _litmus_P2_20_: LitLock16: _litmus_P2_21_: movl (%r11),%ebx _litmus_P2_22_: cmpl $0,%ebx _litmus_P2_23_: je LitLock15 _litmus_P2_24_: jmp LitLock16 _litmus_P2_25_: LitLock17: _litmus_P2_26_: movl (%r8),%edx _litmus_P2_27_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%ebx _litmus_P1_2_: xchgl %ebx,(%r11) _litmus_P1_3_: cmpl $0,%ebx _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r11),%ebx _litmus_P1_7_: cmpl $0,%ebx _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r9) _litmus_P1_12_: movl $0,(%r11) _litmus_P1_13_: movl $1,(%r8) _litmus_P1_14_: movl (%r8),%eax _litmus_P1_15_: LitLock09: _litmus_P1_16_: movl $1,%ebx _litmus_P1_17_: xchgl %ebx,(%r10) _litmus_P1_18_: cmpl $0,%ebx _litmus_P1_19_: je LitLock11 _litmus_P1_20_: LitLock10: _litmus_P1_21_: movl (%r10),%ebx _litmus_P1_22_: cmpl $0,%ebx _litmus_P1_23_: je LitLock09 _litmus_P1_24_: jmp LitLock10 _litmus_P1_25_: LitLock11: _litmus_P1_26_: movl (%rdi),%edx _litmus_P1_27_: movl $0,(%r10) Test X032-L Required Histogram (7 states) 127511:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 158169:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 1919083:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 143069:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2173720:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 2658776:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 2819672:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EBX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EBX=0 /\ 2:EBX=1))) is validated Hash=62b2505fb059a5c0807c365ce6a168b0 Time X032-L 13.13 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X033-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X033-L "Fre PodWW Wse PodWW Rfi PodRR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EAX,$1 | MOV ECX,$1 | MOV ECX,$1 ; XCHG [L_b],EAX | XCHG [L_x],ECX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EAX,[L_b] | MOV ECX,[L_x] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP ECX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [b],$1 | MOV [x],$2 | MOV [z],$1 ; MOV [L_b],$0 | MOV [L_x],$0 | MOV [L_z],$0 ; Lock03: | MOV [y],$1 | MOV [a],$1 ; MOV EAX,$1 | MOV EAX,[y] | MOV EAX,[a] ; XCHG [L_x],EAX | Lock09: | Lock15: ; CMP EAX,$0 | MOV ECX,$1 | MOV ECX,$1 ; JE Lock05 | XCHG [L_z],ECX | XCHG [L_b],ECX ; Lock04: | CMP ECX,$0 | CMP ECX,$0 ; MOV EAX,[L_x] | JE Lock11 | JE Lock17 ; CMP EAX,$0 | Lock10: | Lock16: ; JE Lock03 | MOV ECX,[L_z] | MOV ECX,[L_b] ; JMP Lock04 | CMP ECX,$0 | CMP ECX,$0 ; Lock05: | JE Lock09 | JE Lock15 ; MOV [x],$1 | JMP Lock10 | JMP Lock16 ; MOV [L_x],$0 | Lock11: | Lock17: ; | MOV EBX,[z] | MOV EBX,[b] ; | MOV [L_z],$0 | MOV [L_b],$0 ; forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%ebx _litmus_P2_2_: xchgl %ebx,(%r10) _litmus_P2_3_: cmpl $0,%ebx _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%ebx _litmus_P2_7_: cmpl $0,%ebx _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rdi) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: movl $1,(%r9) _litmus_P2_14_: movl (%r9),%eax _litmus_P2_15_: LitLock15: _litmus_P2_16_: movl $1,%ebx _litmus_P2_17_: xchgl %ebx,(%r11) _litmus_P2_18_: cmpl $0,%ebx _litmus_P2_19_: je LitLock17 _litmus_P2_20_: LitLock16: _litmus_P2_21_: movl (%r11),%ebx _litmus_P2_22_: cmpl $0,%ebx _litmus_P2_23_: je LitLock15 _litmus_P2_24_: jmp LitLock16 _litmus_P2_25_: LitLock17: _litmus_P2_26_: movl (%r8),%edx _litmus_P2_27_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%ebx _litmus_P1_2_: xchgl %ebx,(%r11) _litmus_P1_3_: cmpl $0,%ebx _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r11),%ebx _litmus_P1_7_: cmpl $0,%ebx _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r9) _litmus_P1_12_: movl $0,(%r11) _litmus_P1_13_: movl $1,(%r8) _litmus_P1_14_: movl (%r8),%eax _litmus_P1_15_: LitLock09: _litmus_P1_16_: movl $1,%ebx _litmus_P1_17_: xchgl %ebx,(%r10) _litmus_P1_18_: cmpl $0,%ebx _litmus_P1_19_: je LitLock11 _litmus_P1_20_: LitLock10: _litmus_P1_21_: movl (%r10),%ebx _litmus_P1_22_: cmpl $0,%ebx _litmus_P1_23_: je LitLock09 _litmus_P1_24_: jmp LitLock10 _litmus_P1_25_: LitLock11: _litmus_P1_26_: movl (%rdi),%edx _litmus_P1_27_: movl $0,(%r10) Test X033-L Required Histogram (7 states) 126240:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 2043170:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 2233467:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 2760754:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 160095:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 174704:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 2501570:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ 2:EAX=1 /\ (1:EBX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EBX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is validated Hash=dbaeb809d4e96b33eb8415816d28d2d0 Time X033-L 13.45 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X034-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X034-L "Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 ; Lock00: | Lock06: ; MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_z],EBX | XCHG [L_x],ECX ; CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 ; Lock01: | Lock07: ; MOV EBX,[L_z] | MOV ECX,[L_x] ; CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 ; JMP Lock01 | JMP Lock07 ; Lock02: | Lock08: ; MOV [z],$1 | MOV [x],$1 ; MOV [L_z],$0 | MOV [L_x],$0 ; Lock03: | MOV [y],$1 ; MOV EBX,$1 | MOV EAX,[y] ; XCHG [L_x],EBX | Lock09: ; CMP EBX,$0 | MOV ECX,$1 ; JE Lock05 | XCHG [L_z],ECX ; Lock04: | CMP ECX,$0 ; MOV EBX,[L_x] | JE Lock11 ; CMP EBX,$0 | Lock10: ; JE Lock03 | MOV ECX,[L_z] ; JMP Lock04 | CMP ECX,$0 ; Lock05: | JE Lock09 ; MOV EAX,[x] | JMP Lock10 ; MOV [L_x],$0 | Lock11: ; | MOV EBX,[z] ; | MOV [L_z],$0 ; forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) Generated assembler _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%ebx _litmus_P1_2_: xchgl %ebx,(%r11) _litmus_P1_3_: cmpl $0,%ebx _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r11),%ebx _litmus_P1_7_: cmpl $0,%ebx _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r9) _litmus_P1_12_: movl $0,(%r11) _litmus_P1_13_: movl $1,(%r8) _litmus_P1_14_: movl (%r8),%eax _litmus_P1_15_: LitLock09: _litmus_P1_16_: movl $1,%ebx _litmus_P1_17_: xchgl %ebx,(%r10) _litmus_P1_18_: cmpl $0,%ebx _litmus_P1_19_: je LitLock11 _litmus_P1_20_: LitLock10: _litmus_P1_21_: movl (%r10),%ebx _litmus_P1_22_: cmpl $0,%ebx _litmus_P1_23_: je LitLock09 _litmus_P1_24_: jmp LitLock10 _litmus_P1_25_: LitLock11: _litmus_P1_26_: movl (%rdi),%edx _litmus_P1_27_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%rdi) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdi),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rcx) _litmus_P0_12_: movl $0,(%rdi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%r8) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r8),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rsi),%eax _litmus_P0_25_: movl $0,(%r8) Test X034-L Required Histogram (3 states) 4779597:>0:EAX=1; 1:EAX=1; 1:EBX=0; 6045444:>0:EAX=0; 1:EAX=1; 1:EBX=1; 9174959:>0:EAX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (1:EAX=1 /\ (0:EAX=1 /\ (1:EBX=1 \/ 1:EBX=0) \/ 0:EAX=0 /\ 1:EBX=1)) is validated Hash=e0828d2d985bc3caeb9f421f66575cb2 Time X034-L 12.39 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X035-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X035-L "Fre PodWR Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EBX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_a],EBX | XCHG [L_x],EBX | XCHG [L_y],ECX ; CMP EBX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EBX,[L_a] | MOV EBX,[L_x] | MOV ECX,[L_y] ; CMP EBX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 ; Lock03: | Lock09: | MOV [z],$1 ; MOV EBX,$1 | MOV EBX,$1 | MOV EAX,[z] ; XCHG [L_x],EBX | XCHG [L_y],EBX | Lock15: ; CMP EBX,$0 | CMP EBX,$0 | MOV ECX,$1 ; JE Lock05 | JE Lock11 | XCHG [L_a],ECX ; Lock04: | Lock10: | CMP ECX,$0 ; MOV EBX,[L_x] | MOV EBX,[L_y] | JE Lock17 ; CMP EBX,$0 | CMP EBX,$0 | Lock16: ; JE Lock03 | JE Lock09 | MOV ECX,[L_a] ; JMP Lock04 | JMP Lock10 | CMP ECX,$0 ; Lock05: | Lock11: | JE Lock15 ; MOV EAX,[x] | MOV EAX,[y] | JMP Lock16 ; MOV [L_x],$0 | MOV [L_y],$0 | Lock17: ; | | MOV EBX,[a] ; | | MOV [L_a],$0 ; forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%ebx _litmus_P2_2_: xchgl %ebx,(%r10) _litmus_P2_3_: cmpl $0,%ebx _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%ebx _litmus_P2_7_: cmpl $0,%ebx _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r8) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: movl $1,(%rdi) _litmus_P2_14_: movl (%rdi),%eax _litmus_P2_15_: LitLock15: _litmus_P2_16_: movl $1,%ebx _litmus_P2_17_: xchgl %ebx,(%r11) _litmus_P2_18_: cmpl $0,%ebx _litmus_P2_19_: je LitLock17 _litmus_P2_20_: LitLock16: _litmus_P2_21_: movl (%r11),%ebx _litmus_P2_22_: cmpl $0,%ebx _litmus_P2_23_: je LitLock15 _litmus_P2_24_: jmp LitLock16 _litmus_P2_25_: LitLock17: _litmus_P2_26_: movl (%r9),%edx _litmus_P2_27_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) Test X035-L Required Histogram (7 states) 161375:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 129775:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 2195793:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 195445:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2458201:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 2285053:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 2574358:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ (2:EBX=1 \/ 2:EBX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EBX=1 \/ 2:EBX=0) \/ 1:EAX=0 /\ 2:EBX=1))) is validated Hash=6fed3a2495db9cd00ce244324b63a946 Time X035-L 12.32 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X036-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X036-L "Fre PodWR Fre PodWR Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_b],EBX | XCHG [L_x],EBX | XCHG [L_y],EBX | XCHG [L_z],ECX ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EBX,[L_b] | MOV EBX,[L_x] | MOV EBX,[L_y] | MOV ECX,[L_z] ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [b],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; MOV [L_b],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | MOV [a],$1 ; MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 | MOV EAX,[a] ; XCHG [L_x],EBX | XCHG [L_y],EBX | XCHG [L_z],EBX | Lock21: ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 | MOV ECX,$1 ; JE Lock05 | JE Lock11 | JE Lock17 | XCHG [L_b],ECX ; Lock04: | Lock10: | Lock16: | CMP ECX,$0 ; MOV EBX,[L_x] | MOV EBX,[L_y] | MOV EBX,[L_z] | JE Lock23 ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 | Lock22: ; JE Lock03 | JE Lock09 | JE Lock15 | MOV ECX,[L_b] ; JMP Lock04 | JMP Lock10 | JMP Lock16 | CMP ECX,$0 ; Lock05: | Lock11: | Lock17: | JE Lock21 ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] | JMP Lock22 ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | Lock23: ; | | | MOV EBX,[b] ; | | | MOV [L_b],$0 ; forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%ebx _litmus_P3_2_: xchgl %ebx,(%r10) _litmus_P3_3_: cmpl $0,%ebx _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r10),%ebx _litmus_P3_7_: cmpl $0,%ebx _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rdi) _litmus_P3_12_: movl $0,(%r10) _litmus_P3_13_: movl $1,(%r9) _litmus_P3_14_: movl (%r9),%eax _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%ebx _litmus_P3_17_: xchgl %ebx,(%r11) _litmus_P3_18_: cmpl $0,%ebx _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%r11),%ebx _litmus_P3_22_: cmpl $0,%ebx _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r8),%edx _litmus_P3_27_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) Test X036-L Required Histogram (15 states) 4778 :>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 4787 :>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 143251:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 2921 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 464258:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 113770:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1355776:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 5512 :>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 207780:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 520264:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1738950:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 143332:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1708453:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 1494711:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 2091457:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ (3:EBX=1 \/ 3:EBX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 \/ 3:EBX=0) \/ 2:EAX=0 /\ 3:EBX=1)))) is validated Hash=bf881738e8aeb3f088efcbfe058131a4 Time X036-L 17.00 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X037-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X037-L "Fre PodWW Wse PodWR Fre PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EAX,$1 | MOV EBX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_b],EAX | XCHG [L_x],EBX | XCHG [L_y],EBX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EAX,[L_b] | MOV EBX,[L_x] | MOV EBX,[L_y] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [b],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$1 ; MOV [L_b],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | MOV [a],$1 ; MOV EAX,$1 | MOV EBX,$1 | MOV EBX,$1 | MOV EAX,[a] ; XCHG [L_x],EAX | XCHG [L_y],EBX | XCHG [L_z],EBX | Lock21: ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 | MOV ECX,$1 ; JE Lock05 | JE Lock11 | JE Lock17 | XCHG [L_b],ECX ; Lock04: | Lock10: | Lock16: | CMP ECX,$0 ; MOV EAX,[L_x] | MOV EBX,[L_y] | MOV EBX,[L_z] | JE Lock23 ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 | Lock22: ; JE Lock03 | JE Lock09 | JE Lock15 | MOV ECX,[L_b] ; JMP Lock04 | JMP Lock10 | JMP Lock16 | CMP ECX,$0 ; Lock05: | Lock11: | Lock17: | JE Lock21 ; MOV [x],$1 | MOV EAX,[y] | MOV EAX,[z] | JMP Lock22 ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | Lock23: ; | | | MOV EBX,[b] ; | | | MOV [L_b],$0 ; forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%ebx _litmus_P3_2_: xchgl %ebx,(%r10) _litmus_P3_3_: cmpl $0,%ebx _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r10),%ebx _litmus_P3_7_: cmpl $0,%ebx _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rdi) _litmus_P3_12_: movl $0,(%r10) _litmus_P3_13_: movl $1,(%r9) _litmus_P3_14_: movl (%r9),%eax _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%ebx _litmus_P3_17_: xchgl %ebx,(%r11) _litmus_P3_18_: cmpl $0,%ebx _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%r11),%ebx _litmus_P3_22_: cmpl $0,%ebx _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r8),%edx _litmus_P3_27_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) Test X037-L Required Histogram (15 states) 2914 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 145991:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 428087:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 1385113:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 206994:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 1707966:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 1670917:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 1993764:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 4580 :>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 4276 :>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 111219:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 6331 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 535266:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 185963:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 1610619:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 \/ x=1) \/ 3:EBX=0 /\ x=1)))) is validated Hash=adae4dd5d22489d9b5afd3a635699160 Time X037-L 17.15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X038-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X038-L "Fre PodWW Wse PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EAX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_a],EAX | XCHG [L_x],EBX | XCHG [L_y],ECX ; CMP EAX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EAX,[L_a] | MOV EBX,[L_x] | MOV ECX,[L_y] ; CMP EAX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 ; Lock03: | Lock09: | MOV [z],$1 ; MOV EAX,$1 | MOV EBX,$1 | MOV EAX,[z] ; XCHG [L_x],EAX | XCHG [L_y],EBX | Lock15: ; CMP EAX,$0 | CMP EBX,$0 | MOV ECX,$1 ; JE Lock05 | JE Lock11 | XCHG [L_a],ECX ; Lock04: | Lock10: | CMP ECX,$0 ; MOV EAX,[L_x] | MOV EBX,[L_y] | JE Lock17 ; CMP EAX,$0 | CMP EBX,$0 | Lock16: ; JE Lock03 | JE Lock09 | MOV ECX,[L_a] ; JMP Lock04 | JMP Lock10 | CMP ECX,$0 ; Lock05: | Lock11: | JE Lock15 ; MOV [x],$1 | MOV EAX,[y] | JMP Lock16 ; MOV [L_x],$0 | MOV [L_y],$0 | Lock17: ; | | MOV EBX,[a] ; | | MOV [L_a],$0 ; forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%ebx _litmus_P2_2_: xchgl %ebx,(%r10) _litmus_P2_3_: cmpl $0,%ebx _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%ebx _litmus_P2_7_: cmpl $0,%ebx _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r8) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: movl $1,(%rdi) _litmus_P2_14_: movl (%rdi),%eax _litmus_P2_15_: LitLock15: _litmus_P2_16_: movl $1,%ebx _litmus_P2_17_: xchgl %ebx,(%r11) _litmus_P2_18_: cmpl $0,%ebx _litmus_P2_19_: je LitLock17 _litmus_P2_20_: LitLock16: _litmus_P2_21_: movl (%r11),%ebx _litmus_P2_22_: cmpl $0,%ebx _litmus_P2_23_: je LitLock15 _litmus_P2_24_: jmp LitLock16 _litmus_P2_25_: LitLock17: _litmus_P2_26_: movl (%r9),%edx _litmus_P2_27_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) Test X038-L Required Histogram (7 states) 158183:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 2092738:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 2331147:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 2487463:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 132124:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 166671:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 2631674:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (1:EAX=1 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EBX=1 /\ (x=2 \/ x=1) \/ 2:EBX=0 /\ x=1))) is validated Hash=5c8febab798f9cdf9d2707bbdcbf3fe1 Time X038-L 12.38 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X039-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X039-L "Fre PodWR Fre PodWW Wse PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EBX,$1 | MOV EAX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_b],EBX | XCHG [L_x],EAX | XCHG [L_y],EBX | XCHG [L_z],ECX ; CMP EBX,$0 | CMP EAX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EBX,[L_b] | MOV EAX,[L_x] | MOV EBX,[L_y] | MOV ECX,[L_z] ; CMP EBX,$0 | CMP EAX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [b],$1 | MOV [x],$1 | MOV [y],$2 | MOV [z],$1 ; MOV [L_b],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | MOV [a],$1 ; MOV EBX,$1 | MOV EAX,$1 | MOV EBX,$1 | MOV EAX,[a] ; XCHG [L_x],EBX | XCHG [L_y],EAX | XCHG [L_z],EBX | Lock21: ; CMP EBX,$0 | CMP EAX,$0 | CMP EBX,$0 | MOV ECX,$1 ; JE Lock05 | JE Lock11 | JE Lock17 | XCHG [L_b],ECX ; Lock04: | Lock10: | Lock16: | CMP ECX,$0 ; MOV EBX,[L_x] | MOV EAX,[L_y] | MOV EBX,[L_z] | JE Lock23 ; CMP EBX,$0 | CMP EAX,$0 | CMP EBX,$0 | Lock22: ; JE Lock03 | JE Lock09 | JE Lock15 | MOV ECX,[L_b] ; JMP Lock04 | JMP Lock10 | JMP Lock16 | CMP ECX,$0 ; Lock05: | Lock11: | Lock17: | JE Lock21 ; MOV EAX,[x] | MOV [y],$1 | MOV EAX,[z] | JMP Lock22 ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | Lock23: ; | | | MOV EBX,[b] ; | | | MOV [L_b],$0 ; forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%ebx _litmus_P3_2_: xchgl %ebx,(%r10) _litmus_P3_3_: cmpl $0,%ebx _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r10),%ebx _litmus_P3_7_: cmpl $0,%ebx _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rdi) _litmus_P3_12_: movl $0,(%r10) _litmus_P3_13_: movl $1,(%r9) _litmus_P3_14_: movl (%r9),%eax _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%ebx _litmus_P3_17_: xchgl %ebx,(%r11) _litmus_P3_18_: cmpl $0,%ebx _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%r11),%ebx _litmus_P3_22_: cmpl $0,%ebx _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r8),%edx _litmus_P3_27_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) Test X039-L Required Histogram (15 states) 5596 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 131056:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 143069:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 1345391:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 525133:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 1705485:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 1610005:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 1975563:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 3182 :>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 3893 :>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 448068:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 6362 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 222651:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 160888:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 1713658:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1))) \/ 0:EAX=0 /\ (2:EAX=1 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (3:EBX=1 /\ (y=2 \/ y=1) \/ 3:EBX=0 /\ y=1)))) is validated Hash=0b88f97383f43e75f433db87b071c820 Time X039-L 17.14 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X040-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X040-L "Fre PodWW Wse PodWW Wse PodWR Fre PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EAX,$1 | MOV EAX,$1 | MOV EBX,$1 | MOV ECX,$1 ; XCHG [L_b],EAX | XCHG [L_x],EAX | XCHG [L_y],EBX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EAX,[L_b] | MOV EAX,[L_x] | MOV EBX,[L_y] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [b],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$1 ; MOV [L_b],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | MOV [a],$1 ; MOV EAX,$1 | MOV EAX,$1 | MOV EBX,$1 | MOV EAX,[a] ; XCHG [L_x],EAX | XCHG [L_y],EAX | XCHG [L_z],EBX | Lock21: ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 | MOV ECX,$1 ; JE Lock05 | JE Lock11 | JE Lock17 | XCHG [L_b],ECX ; Lock04: | Lock10: | Lock16: | CMP ECX,$0 ; MOV EAX,[L_x] | MOV EAX,[L_y] | MOV EBX,[L_z] | JE Lock23 ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 | Lock22: ; JE Lock03 | JE Lock09 | JE Lock15 | MOV ECX,[L_b] ; JMP Lock04 | JMP Lock10 | JMP Lock16 | CMP ECX,$0 ; Lock05: | Lock11: | Lock17: | JE Lock21 ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[z] | JMP Lock22 ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | Lock23: ; | | | MOV EBX,[b] ; | | | MOV [L_b],$0 ; forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%ebx _litmus_P3_2_: xchgl %ebx,(%r10) _litmus_P3_3_: cmpl $0,%ebx _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r10),%ebx _litmus_P3_7_: cmpl $0,%ebx _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rdi) _litmus_P3_12_: movl $0,(%r10) _litmus_P3_13_: movl $1,(%r9) _litmus_P3_14_: movl (%r9),%eax _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%ebx _litmus_P3_17_: xchgl %ebx,(%r11) _litmus_P3_18_: cmpl $0,%ebx _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%r11),%ebx _litmus_P3_22_: cmpl $0,%ebx _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r8),%edx _litmus_P3_27_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) Test X040-L Required Histogram (15 states) 141297:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 1228804:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 1658116:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 1964148:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 3883 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 115417:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 551601:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 1708395:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 4639 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 436466:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 213083:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 1780618:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 3711 :>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 6044 :>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 183778:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (2:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))))) is validated Hash=3f7b54e20e1baac4f0a5d51b885c9c51 Time X040-L 17.78 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X041-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X041-L "Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 ; Lock00: | Lock06: ; MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_z],EAX | XCHG [L_x],ECX ; CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 ; Lock01: | Lock07: ; MOV EAX,[L_z] | MOV ECX,[L_x] ; CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 ; JMP Lock01 | JMP Lock07 ; Lock02: | Lock08: ; MOV [z],$1 | MOV [x],$2 ; MOV [L_z],$0 | MOV [L_x],$0 ; Lock03: | MOV [y],$1 ; MOV EAX,$1 | MOV EAX,[y] ; XCHG [L_x],EAX | Lock09: ; CMP EAX,$0 | MOV ECX,$1 ; JE Lock05 | XCHG [L_z],ECX ; Lock04: | CMP ECX,$0 ; MOV EAX,[L_x] | JE Lock11 ; CMP EAX,$0 | Lock10: ; JE Lock03 | MOV ECX,[L_z] ; JMP Lock04 | CMP ECX,$0 ; Lock05: | JE Lock09 ; MOV [x],$1 | JMP Lock10 ; MOV [L_x],$0 | Lock11: ; | MOV EBX,[z] ; | MOV [L_z],$0 ; forall (1:EAX=1 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1)) Generated assembler _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%ebx _litmus_P1_2_: xchgl %ebx,(%r11) _litmus_P1_3_: cmpl $0,%ebx _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r11),%ebx _litmus_P1_7_: cmpl $0,%ebx _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r9) _litmus_P1_12_: movl $0,(%r11) _litmus_P1_13_: movl $1,(%r8) _litmus_P1_14_: movl (%r8),%eax _litmus_P1_15_: LitLock09: _litmus_P1_16_: movl $1,%ebx _litmus_P1_17_: xchgl %ebx,(%r10) _litmus_P1_18_: cmpl $0,%ebx _litmus_P1_19_: je LitLock11 _litmus_P1_20_: LitLock10: _litmus_P1_21_: movl (%r10),%ebx _litmus_P1_22_: cmpl $0,%ebx _litmus_P1_23_: je LitLock09 _litmus_P1_24_: jmp LitLock10 _litmus_P1_25_: LitLock11: _litmus_P1_26_: movl (%rdi),%edx _litmus_P1_27_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rcx) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rcx),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rax) _litmus_P0_12_: movl $0,(%rcx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rsi) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rsi),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rdx) _litmus_P0_25_: movl $0,(%rsi) Test X041-L Required Histogram (3 states) 4556274:>1:EAX=1; 1:EBX=0; x=1; 9329751:>1:EAX=1; 1:EBX=1; x=1; 6113975:>1:EAX=1; 1:EBX=1; x=2; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (1:EAX=1 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1)) is validated Hash=92a499c580cf78cd1f9be404febc0e8c Time X041-L 12.30 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X042-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X042-L "Fre PodWR Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EBX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_a],EBX | XCHG [L_x],EAX | XCHG [L_y],ECX ; CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EBX,[L_a] | MOV EAX,[L_x] | MOV ECX,[L_y] ; CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [a],$1 | MOV [x],$1 | MOV [y],$2 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 ; Lock03: | Lock09: | MOV [z],$1 ; MOV EBX,$1 | MOV EAX,$1 | MOV EAX,[z] ; XCHG [L_x],EBX | XCHG [L_y],EAX | Lock15: ; CMP EBX,$0 | CMP EAX,$0 | MOV ECX,$1 ; JE Lock05 | JE Lock11 | XCHG [L_a],ECX ; Lock04: | Lock10: | CMP ECX,$0 ; MOV EBX,[L_x] | MOV EAX,[L_y] | JE Lock17 ; CMP EBX,$0 | CMP EAX,$0 | Lock16: ; JE Lock03 | JE Lock09 | MOV ECX,[L_a] ; JMP Lock04 | JMP Lock10 | CMP ECX,$0 ; Lock05: | Lock11: | JE Lock15 ; MOV EAX,[x] | MOV [y],$1 | JMP Lock16 ; MOV [L_x],$0 | MOV [L_y],$0 | Lock17: ; | | MOV EBX,[a] ; | | MOV [L_a],$0 ; forall (2:EAX=1 /\ (0:EAX=1 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 0:EAX=0 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%ebx _litmus_P2_2_: xchgl %ebx,(%r10) _litmus_P2_3_: cmpl $0,%ebx _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%ebx _litmus_P2_7_: cmpl $0,%ebx _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r8) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: movl $1,(%rdi) _litmus_P2_14_: movl (%rdi),%eax _litmus_P2_15_: LitLock15: _litmus_P2_16_: movl $1,%ebx _litmus_P2_17_: xchgl %ebx,(%r11) _litmus_P2_18_: cmpl $0,%ebx _litmus_P2_19_: je LitLock17 _litmus_P2_20_: LitLock16: _litmus_P2_21_: movl (%r11),%ebx _litmus_P2_22_: cmpl $0,%ebx _litmus_P2_23_: je LitLock15 _litmus_P2_24_: jmp LitLock16 _litmus_P2_25_: LitLock17: _litmus_P2_26_: movl (%r9),%edx _litmus_P2_27_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) Test X042-L Required Histogram (7 states) 140853:>0:EAX=0; 2:EAX=1; 2:EBX=0; y=1; 2079110:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 2241631:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 2640707:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 156253:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=2; 174967:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=2; 2566479:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (0:EAX=1 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ (y=2 \/ y=1)) \/ 0:EAX=0 /\ (2:EBX=1 /\ (y=2 \/ y=1) \/ 2:EBX=0 /\ y=1))) is validated Hash=85d504abc641b068b534758a44262f20 Time X042-L 12.45 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X043-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X043-L "Fre PodWR Fre PodWR Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EBX,$1 | MOV EBX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_b],EBX | XCHG [L_x],EBX | XCHG [L_y],EAX | XCHG [L_z],ECX ; CMP EBX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EBX,[L_b] | MOV EBX,[L_x] | MOV EAX,[L_y] | MOV ECX,[L_z] ; CMP EBX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [b],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$2 ; MOV [L_b],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | MOV [a],$1 ; MOV EBX,$1 | MOV EBX,$1 | MOV EAX,$1 | MOV EAX,[a] ; XCHG [L_x],EBX | XCHG [L_y],EBX | XCHG [L_z],EAX | Lock21: ; CMP EBX,$0 | CMP EBX,$0 | CMP EAX,$0 | MOV ECX,$1 ; JE Lock05 | JE Lock11 | JE Lock17 | XCHG [L_b],ECX ; Lock04: | Lock10: | Lock16: | CMP ECX,$0 ; MOV EBX,[L_x] | MOV EBX,[L_y] | MOV EAX,[L_z] | JE Lock23 ; CMP EBX,$0 | CMP EBX,$0 | CMP EAX,$0 | Lock22: ; JE Lock03 | JE Lock09 | JE Lock15 | MOV ECX,[L_b] ; JMP Lock04 | JMP Lock10 | JMP Lock16 | CMP ECX,$0 ; Lock05: | Lock11: | Lock17: | JE Lock21 ; MOV EAX,[x] | MOV EAX,[y] | MOV [z],$1 | JMP Lock22 ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | Lock23: ; | | | MOV EBX,[b] ; | | | MOV [L_b],$0 ; forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1)))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%ebx _litmus_P3_2_: xchgl %ebx,(%r10) _litmus_P3_3_: cmpl $0,%ebx _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r10),%ebx _litmus_P3_7_: cmpl $0,%ebx _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%rdi) _litmus_P3_12_: movl $0,(%r10) _litmus_P3_13_: movl $1,(%r9) _litmus_P3_14_: movl (%r9),%eax _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%ebx _litmus_P3_17_: xchgl %ebx,(%r11) _litmus_P3_18_: cmpl $0,%ebx _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%r11),%ebx _litmus_P3_22_: cmpl $0,%ebx _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r8),%edx _litmus_P3_27_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%edi _litmus_P2_2_: xchgl %edi,(%rsi) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rsi),%edi _litmus_P2_7_: cmpl $0,%edi _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rdx) _litmus_P2_12_: movl $0,(%rsi) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%edi _litmus_P2_15_: xchgl %edi,(%rcx) _litmus_P2_16_: cmpl $0,%edi _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rcx),%edi _litmus_P2_20_: cmpl $0,%edi _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%rax) _litmus_P2_25_: movl $0,(%rcx) Test X043-L Required Histogram (15 states) 3420 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 408673:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 144415:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 1455367:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 158370:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 1607987:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 1610936:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 2000753:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 3483 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=2; 5774 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 171084:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 5645 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 188502:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 521668:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; 1713923:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ (z=2 \/ z=1)) \/ 1:EAX=0 /\ (3:EBX=1 /\ (z=2 \/ z=1) \/ 3:EBX=0 /\ z=1)))) is validated Hash=67879d183f92542c6ae81a772f8f1827 Time X043-L 17.19 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X044-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X044-L "Fre PodWW Wse PodWR Fre PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EAX,$1 | MOV EBX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_b],EAX | XCHG [L_x],EBX | XCHG [L_y],EAX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EAX,[L_b] | MOV EBX,[L_x] | MOV EAX,[L_y] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [b],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$2 ; MOV [L_b],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | MOV [a],$1 ; MOV EAX,$1 | MOV EBX,$1 | MOV EAX,$1 | MOV EAX,[a] ; XCHG [L_x],EAX | XCHG [L_y],EBX | XCHG [L_z],EAX | Lock21: ; CMP EAX,$0 | CMP EBX,$0 | CMP EAX,$0 | MOV ECX,$1 ; JE Lock05 | JE Lock11 | JE Lock17 | XCHG [L_b],ECX ; Lock04: | Lock10: | Lock16: | CMP ECX,$0 ; MOV EAX,[L_x] | MOV EBX,[L_y] | MOV EAX,[L_z] | JE Lock23 ; CMP EAX,$0 | CMP EBX,$0 | CMP EAX,$0 | Lock22: ; JE Lock03 | JE Lock09 | JE Lock15 | MOV ECX,[L_b] ; JMP Lock04 | JMP Lock10 | JMP Lock16 | CMP ECX,$0 ; Lock05: | Lock11: | Lock17: | JE Lock21 ; MOV [x],$1 | MOV EAX,[y] | MOV [z],$1 | JMP Lock22 ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | Lock23: ; | | | MOV EBX,[b] ; | | | MOV [L_b],$0 ; forall (3:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%ebx _litmus_P3_2_: xchgl %ebx,(%r10) _litmus_P3_3_: cmpl $0,%ebx _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r10),%ebx _litmus_P3_7_: cmpl $0,%ebx _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%rdi) _litmus_P3_12_: movl $0,(%r10) _litmus_P3_13_: movl $1,(%r9) _litmus_P3_14_: movl (%r9),%eax _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%ebx _litmus_P3_17_: xchgl %ebx,(%r11) _litmus_P3_18_: cmpl $0,%ebx _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%r11),%ebx _litmus_P3_22_: cmpl $0,%ebx _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r8),%edx _litmus_P3_27_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%edi _litmus_P2_2_: xchgl %edi,(%rsi) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rsi),%edi _litmus_P2_7_: cmpl $0,%edi _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rdx) _litmus_P2_12_: movl $0,(%rsi) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%edi _litmus_P2_15_: xchgl %edi,(%rcx) _litmus_P2_16_: cmpl $0,%edi _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rcx),%edi _litmus_P2_20_: cmpl $0,%edi _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%rax) _litmus_P2_25_: movl $0,(%rcx) Test X044-L Required Histogram (15 states) 413056:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 1220754:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 1657514:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 1975061:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 3507 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=2; z=1; 98935 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 171387:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 1587322:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 4403 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=2; 146080:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=2; 228900:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=2; 1889042:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=2; 2600 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=2; 7704 :>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=2; 593735:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (1:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EBX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1))))) is validated Hash=d0dc096bf553400e9f2dca106d942814 Time X044-L 17.93 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X045-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X045-L "Fre PodWW Wse PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EAX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_a],EAX | XCHG [L_x],EAX | XCHG [L_y],ECX ; CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EAX,[L_a] | MOV EAX,[L_x] | MOV ECX,[L_y] ; CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 ; Lock03: | Lock09: | MOV [z],$1 ; MOV EAX,$1 | MOV EAX,$1 | MOV EAX,[z] ; XCHG [L_x],EAX | XCHG [L_y],EAX | Lock15: ; CMP EAX,$0 | CMP EAX,$0 | MOV ECX,$1 ; JE Lock05 | JE Lock11 | XCHG [L_a],ECX ; Lock04: | Lock10: | CMP ECX,$0 ; MOV EAX,[L_x] | MOV EAX,[L_y] | JE Lock17 ; CMP EAX,$0 | CMP EAX,$0 | Lock16: ; JE Lock03 | JE Lock09 | MOV ECX,[L_a] ; JMP Lock04 | JMP Lock10 | CMP ECX,$0 ; Lock05: | Lock11: | JE Lock15 ; MOV [x],$1 | MOV [y],$1 | JMP Lock16 ; MOV [L_x],$0 | MOV [L_y],$0 | Lock17: ; | | MOV EBX,[a] ; | | MOV [L_a],$0 ; forall (2:EAX=1 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%ebx _litmus_P2_2_: xchgl %ebx,(%r10) _litmus_P2_3_: cmpl $0,%ebx _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%ebx _litmus_P2_7_: cmpl $0,%ebx _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r8) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: movl $1,(%rdi) _litmus_P2_14_: movl (%rdi),%eax _litmus_P2_15_: LitLock15: _litmus_P2_16_: movl $1,%ebx _litmus_P2_17_: xchgl %ebx,(%r11) _litmus_P2_18_: cmpl $0,%ebx _litmus_P2_19_: je LitLock17 _litmus_P2_20_: LitLock16: _litmus_P2_21_: movl (%r11),%ebx _litmus_P2_22_: cmpl $0,%ebx _litmus_P2_23_: je LitLock15 _litmus_P2_24_: jmp LitLock16 _litmus_P2_25_: LitLock17: _litmus_P2_26_: movl (%r9),%edx _litmus_P2_27_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) Test X045-L Required Histogram (7 states) 2450845:>2:EAX=1; 2:EBX=0; x=1; y=1; 2464993:>2:EAX=1; 2:EBX=1; x=1; y=1; 130182:>2:EAX=1; 2:EBX=0; x=2; y=1; 2349639:>2:EAX=1; 2:EBX=1; x=2; y=1; 187461:>2:EAX=1; 2:EBX=0; x=1; y=2; 2257679:>2:EAX=1; 2:EBX=1; x=1; y=2; 159201:>2:EAX=1; 2:EBX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (2:EBX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EBX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) is validated Hash=e26462d734912a0264da2884bb890aee Time X045-L 12.48 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X046-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X046-L "Fre PodWR Fre PodWW Wse PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EBX,$1 | MOV EAX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_b],EBX | XCHG [L_x],EAX | XCHG [L_y],EAX | XCHG [L_z],ECX ; CMP EBX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EBX,[L_b] | MOV EAX,[L_x] | MOV EAX,[L_y] | MOV ECX,[L_z] ; CMP EBX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [b],$1 | MOV [x],$1 | MOV [y],$2 | MOV [z],$2 ; MOV [L_b],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | MOV [a],$1 ; MOV EBX,$1 | MOV EAX,$1 | MOV EAX,$1 | MOV EAX,[a] ; XCHG [L_x],EBX | XCHG [L_y],EAX | XCHG [L_z],EAX | Lock21: ; CMP EBX,$0 | CMP EAX,$0 | CMP EAX,$0 | MOV ECX,$1 ; JE Lock05 | JE Lock11 | JE Lock17 | XCHG [L_b],ECX ; Lock04: | Lock10: | Lock16: | CMP ECX,$0 ; MOV EBX,[L_x] | MOV EAX,[L_y] | MOV EAX,[L_z] | JE Lock23 ; CMP EBX,$0 | CMP EAX,$0 | CMP EAX,$0 | Lock22: ; JE Lock03 | JE Lock09 | JE Lock15 | MOV ECX,[L_b] ; JMP Lock04 | JMP Lock10 | JMP Lock16 | CMP ECX,$0 ; Lock05: | Lock11: | Lock17: | JE Lock21 ; MOV EAX,[x] | MOV [y],$1 | MOV [z],$1 | JMP Lock22 ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | Lock23: ; | | | MOV EBX,[b] ; | | | MOV [L_b],$0 ; forall (3:EAX=1 /\ (0:EAX=1 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%ebx _litmus_P3_2_: xchgl %ebx,(%r10) _litmus_P3_3_: cmpl $0,%ebx _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r10),%ebx _litmus_P3_7_: cmpl $0,%ebx _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%rdi) _litmus_P3_12_: movl $0,(%r10) _litmus_P3_13_: movl $1,(%r9) _litmus_P3_14_: movl (%r9),%eax _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%ebx _litmus_P3_17_: xchgl %ebx,(%r11) _litmus_P3_18_: cmpl $0,%ebx _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%r11),%ebx _litmus_P3_22_: cmpl $0,%ebx _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r8),%edx _litmus_P3_27_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%edi _litmus_P2_2_: xchgl %edi,(%rsi) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rsi),%edi _litmus_P2_7_: cmpl $0,%edi _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%rdx) _litmus_P2_12_: movl $0,(%rsi) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%edi _litmus_P2_15_: xchgl %edi,(%rcx) _litmus_P2_16_: cmpl $0,%edi _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rcx),%edi _litmus_P2_20_: cmpl $0,%edi _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%rax) _litmus_P2_25_: movl $0,(%rcx) Test X046-L Required Histogram (15 states) 115335:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 1486829:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 1494723:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 2025029:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 3902 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=2; z=1; 428568:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 161992:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 1769980:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 4647 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=2; 184796:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=2; 493720:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=2; 1642815:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=2; 4979 :>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=2; 4295 :>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=2; 178390:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (0:EAX=1 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 0:EAX=0 /\ (3:EBX=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ 3:EBX=0 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1))))) is validated Hash=451770e407a390cf83c1b07ee3ade115 Time X046-L 17.20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X047-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X047-L "Fre PodWW Wse PodWW Wse PodWW Wse PodWW Rfi PodRR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EAX,$1 | MOV EAX,$1 | MOV EAX,$1 | MOV ECX,$1 ; XCHG [L_b],EAX | XCHG [L_x],EAX | XCHG [L_y],EAX | XCHG [L_z],ECX ; CMP EAX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EAX,[L_b] | MOV EAX,[L_x] | MOV EAX,[L_y] | MOV ECX,[L_z] ; CMP EAX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP ECX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [b],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$2 ; MOV [L_b],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | MOV [a],$1 ; MOV EAX,$1 | MOV EAX,$1 | MOV EAX,$1 | MOV EAX,[a] ; XCHG [L_x],EAX | XCHG [L_y],EAX | XCHG [L_z],EAX | Lock21: ; CMP EAX,$0 | CMP EAX,$0 | CMP EAX,$0 | MOV ECX,$1 ; JE Lock05 | JE Lock11 | JE Lock17 | XCHG [L_b],ECX ; Lock04: | Lock10: | Lock16: | CMP ECX,$0 ; MOV EAX,[L_x] | MOV EAX,[L_y] | MOV EAX,[L_z] | JE Lock23 ; CMP EAX,$0 | CMP EAX,$0 | CMP EAX,$0 | Lock22: ; JE Lock03 | JE Lock09 | JE Lock15 | MOV ECX,[L_b] ; JMP Lock04 | JMP Lock10 | JMP Lock16 | CMP ECX,$0 ; Lock05: | Lock11: | Lock17: | JE Lock21 ; MOV [x],$1 | MOV [y],$1 | MOV [z],$1 | JMP Lock22 ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | Lock23: ; | | | MOV EBX,[b] ; | | | MOV [L_b],$0 ; forall (3:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%ebx _litmus_P3_2_: xchgl %ebx,(%r10) _litmus_P3_3_: cmpl $0,%ebx _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r10),%ebx _litmus_P3_7_: cmpl $0,%ebx _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%rdi) _litmus_P3_12_: movl $0,(%r10) _litmus_P3_13_: movl $1,(%r9) _litmus_P3_14_: movl (%r9),%eax _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%ebx _litmus_P3_17_: xchgl %ebx,(%r11) _litmus_P3_18_: cmpl $0,%ebx _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%r11),%ebx _litmus_P3_22_: cmpl $0,%ebx _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r8),%edx _litmus_P3_27_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%edi _litmus_P2_2_: xchgl %edi,(%rsi) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rsi),%edi _litmus_P2_7_: cmpl $0,%edi _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%rdx) _litmus_P2_12_: movl $0,(%rsi) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%edi _litmus_P2_15_: xchgl %edi,(%rcx) _litmus_P2_16_: cmpl $0,%edi _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rcx),%edi _litmus_P2_20_: cmpl $0,%edi _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%rax) _litmus_P2_25_: movl $0,(%rcx) Test X047-L Required Histogram (15 states) 1318257:>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 1973235:>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 114382:>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 1642292:>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 407413:>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 1729799:>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 2795 :>3:EAX=1; 3:EBX=0; x=2; y=2; z=1; 164804:>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 152892:>3:EAX=1; 3:EBX=0; x=1; y=1; z=2; 1740819:>3:EAX=1; 3:EBX=1; x=1; y=1; z=2; 3555 :>3:EAX=1; 3:EBX=0; x=2; y=1; z=2; 548433:>3:EAX=1; 3:EBX=1; x=2; y=1; z=2; 3669 :>3:EAX=1; 3:EBX=0; x=1; y=2; z=2; 192821:>3:EAX=1; 3:EBX=1; x=1; y=2; z=2; 4834 :>3:EAX=1; 3:EBX=1; x=2; y=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (3:EBX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EBX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))))) is validated Hash=90341b89e925cb05ca47cf4991b6367f Time X047-L 18.10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X048-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X048-L "Fre PodWR Fre PodWR" {} P0 | P1 ; Lock00: | Lock06: ; MOV EBX,$1 | MOV EBX,$1 ; XCHG [L_y],EBX | XCHG [L_x],EBX ; CMP EBX,$0 | CMP EBX,$0 ; JE Lock02 | JE Lock08 ; Lock01: | Lock07: ; MOV EBX,[L_y] | MOV EBX,[L_x] ; CMP EBX,$0 | CMP EBX,$0 ; JE Lock00 | JE Lock06 ; JMP Lock01 | JMP Lock07 ; Lock02: | Lock08: ; MOV [y],$1 | MOV [x],$1 ; MOV [L_y],$0 | MOV [L_x],$0 ; Lock03: | Lock09: ; MOV EBX,$1 | MOV EBX,$1 ; XCHG [L_x],EBX | XCHG [L_y],EBX ; CMP EBX,$0 | CMP EBX,$0 ; JE Lock05 | JE Lock11 ; Lock04: | Lock10: ; MOV EBX,[L_x] | MOV EBX,[L_y] ; CMP EBX,$0 | CMP EBX,$0 ; JE Lock03 | JE Lock09 ; JMP Lock04 | JMP Lock10 ; Lock05: | Lock11: ; MOV EAX,[x] | MOV EAX,[y] ; MOV [L_x],$0 | MOV [L_y],$0 ; forall (0:EAX=1 /\ (1:EAX=1 \/ 1:EAX=0) \/ 0:EAX=0 /\ 1:EAX=1) Generated assembler _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%rdi) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdi),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rcx) _litmus_P0_12_: movl $0,(%rdi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%r8) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r8),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rsi),%eax _litmus_P0_25_: movl $0,(%r8) Test X048-L Required Histogram (3 states) 5957730:>0:EAX=1; 1:EAX=0; 5965599:>0:EAX=0; 1:EAX=1; 8076671:>0:EAX=1; 1:EAX=1; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (0:EAX=1 /\ (1:EAX=1 \/ 1:EAX=0) \/ 0:EAX=0 /\ 1:EAX=1) is validated Hash=8496c37f99fa3ca2b56c4ea54c3369fb Time X048-L 11.32 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X049-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X049-L "Fre PodWR Fre PodWR Fre PodWR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 ; XCHG [L_z],EBX | XCHG [L_x],EBX | XCHG [L_y],EBX ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EBX,[L_z] | MOV EBX,[L_x] | MOV EBX,[L_y] ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [z],$1 | MOV [x],$1 | MOV [y],$1 ; MOV [L_z],$0 | MOV [L_x],$0 | MOV [L_y],$0 ; Lock03: | Lock09: | Lock15: ; MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 ; XCHG [L_x],EBX | XCHG [L_y],EBX | XCHG [L_z],EBX ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock05 | JE Lock11 | JE Lock17 ; Lock04: | Lock10: | Lock16: ; MOV EBX,[L_x] | MOV EBX,[L_y] | MOV EBX,[L_z] ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock03 | JE Lock09 | JE Lock15 ; JMP Lock04 | JMP Lock10 | JMP Lock16 ; Lock05: | Lock11: | Lock17: ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ (2:EAX=1 \/ 2:EAX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ 2:EAX=1)) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%rdi) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdi),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rcx) _litmus_P0_12_: movl $0,(%rdi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%r8) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r8),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rsi),%eax _litmus_P0_25_: movl $0,(%r8) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) Test X049-L Required Histogram (7 states) 151008:>0:EAX=1; 1:EAX=0; 2:EAX=0; 168028:>0:EAX=0; 1:EAX=1; 2:EAX=0; 2370458:>0:EAX=1; 1:EAX=1; 2:EAX=0; 148606:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2528640:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2339927:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2293333:>0:EAX=1; 1:EAX=1; 2:EAX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ (2:EAX=1 \/ 2:EAX=0)) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 \/ 2:EAX=0) \/ 1:EAX=0 /\ 2:EAX=1)) is validated Hash=f6bd7872ec42b5555a4a656473af2bb3 Time X049-L 11.46 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X050-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X050-L "Fre PodWR Fre PodWR Fre PodWR Fre PodWR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 ; XCHG [L_a],EBX | XCHG [L_x],EBX | XCHG [L_y],EBX | XCHG [L_z],EBX ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EBX,[L_a] | MOV EBX,[L_x] | MOV EBX,[L_y] | MOV EBX,[L_z] ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$1 | MOV [y],$1 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | Lock21: ; MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 ; XCHG [L_x],EBX | XCHG [L_y],EBX | XCHG [L_z],EBX | XCHG [L_a],EBX ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock05 | JE Lock11 | JE Lock17 | JE Lock23 ; Lock04: | Lock10: | Lock16: | Lock22: ; MOV EBX,[L_x] | MOV EBX,[L_y] | MOV EBX,[L_z] | MOV EBX,[L_a] ; CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock03 | JE Lock09 | JE Lock15 | JE Lock21 ; JMP Lock04 | JMP Lock10 | JMP Lock16 | JMP Lock22 ; Lock05: | Lock11: | Lock17: | Lock23: ; MOV EAX,[x] | MOV EAX,[y] | MOV EAX,[z] | MOV EAX,[a] ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | MOV [L_a],$0 ; forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ 3:EAX=1))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r9d _litmus_P3_2_: xchgl %r9d,(%rdi) _litmus_P3_3_: cmpl $0,%r9d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%rdi),%r9d _litmus_P3_7_: cmpl $0,%r9d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rcx) _litmus_P3_12_: movl $0,(%rdi) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r9d _litmus_P3_15_: xchgl %r9d,(%r8) _litmus_P3_16_: cmpl $0,%r9d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r8),%r9d _litmus_P3_20_: cmpl $0,%r9d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%rsi),%eax _litmus_P3_25_: movl $0,(%r8) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r9d _litmus_P0_2_: xchgl %r9d,(%r8) _litmus_P0_3_: cmpl $0,%r9d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r8),%r9d _litmus_P0_7_: cmpl $0,%r9d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rsi) _litmus_P0_12_: movl $0,(%r8) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r9d _litmus_P0_15_: xchgl %r9d,(%rdi) _litmus_P0_16_: cmpl $0,%r9d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdi),%r9d _litmus_P0_20_: cmpl $0,%r9d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%rcx),%eax _litmus_P0_25_: movl $0,(%rdi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) Test X050-L Required Histogram (15 states) 5124 :>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=0; 4425 :>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=0; 182240:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=0; 3997 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=0; 481214:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=0; 151401:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=0; 1648898:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=0; 6350 :>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 188434:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 481119:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 1638382:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 167579:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 1588956:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 1556284:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 1895597:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (0:EAX=1 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0))) \/ 0:EAX=0 /\ (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ (3:EAX=1 \/ 3:EAX=0)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 \/ 3:EAX=0) \/ 2:EAX=0 /\ 3:EAX=1))) is validated Hash=b1210f205cc76920bb5b061f145f7cd6 Time X050-L 15.56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X051-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X051-L "Fre PodWW Wse PodWR Fre PodWR Fre PodWR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EAX,$1 | MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 ; XCHG [L_a],EAX | XCHG [L_x],EBX | XCHG [L_y],EBX | XCHG [L_z],EBX ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EAX,[L_a] | MOV EBX,[L_x] | MOV EBX,[L_y] | MOV EBX,[L_z] ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | Lock21: ; MOV EAX,$1 | MOV EBX,$1 | MOV EBX,$1 | MOV EBX,$1 ; XCHG [L_x],EAX | XCHG [L_y],EBX | XCHG [L_z],EBX | XCHG [L_a],EBX ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock05 | JE Lock11 | JE Lock17 | JE Lock23 ; Lock04: | Lock10: | Lock16: | Lock22: ; MOV EAX,[L_x] | MOV EBX,[L_y] | MOV EBX,[L_z] | MOV EBX,[L_a] ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock03 | JE Lock09 | JE Lock15 | JE Lock21 ; JMP Lock04 | JMP Lock10 | JMP Lock16 | JMP Lock22 ; Lock05: | Lock11: | Lock17: | Lock23: ; MOV [x],$1 | MOV EAX,[y] | MOV EAX,[z] | MOV EAX,[a] ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | MOV [L_a],$0 ; forall (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ x=1))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r9d _litmus_P3_2_: xchgl %r9d,(%rdi) _litmus_P3_3_: cmpl $0,%r9d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%rdi),%r9d _litmus_P3_7_: cmpl $0,%r9d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rcx) _litmus_P3_12_: movl $0,(%rdi) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r9d _litmus_P3_15_: xchgl %r9d,(%r8) _litmus_P3_16_: cmpl $0,%r9d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r8),%r9d _litmus_P3_20_: cmpl $0,%r9d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%rsi),%eax _litmus_P3_25_: movl $0,(%r8) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) Test X051-L Required Histogram (15 states) 3109 :>1:EAX=0; 2:EAX=0; 3:EAX=0; x=1; 132355:>1:EAX=1; 2:EAX=0; 3:EAX=0; x=1; 534840:>1:EAX=0; 2:EAX=1; 3:EAX=0; x=1; 1469505:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=1; 160960:>1:EAX=0; 2:EAX=0; 3:EAX=1; x=1; 1483512:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=1; 1666238:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=1; 1851537:>1:EAX=1; 2:EAX=1; 3:EAX=1; x=1; 4680 :>1:EAX=1; 2:EAX=0; 3:EAX=0; x=2; 5990 :>1:EAX=0; 2:EAX=1; 3:EAX=0; x=2; 172255:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=2; 6655 :>1:EAX=0; 2:EAX=0; 3:EAX=1; x=2; 550653:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=2; 200161:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=2; 1757550:>1:EAX=1; 2:EAX=1; 3:EAX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1))) \/ 1:EAX=0 /\ (2:EAX=1 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ (x=2 \/ x=1)) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 \/ x=1) \/ 3:EAX=0 /\ x=1))) is validated Hash=e74fa7ebf633e2b685fd01305f8fa772 Time X051-L 16.34 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X052-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X052-L "Fre PodWW Wse PodWR Fre PodWR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EAX,$1 | MOV EBX,$1 | MOV EBX,$1 ; XCHG [L_z],EAX | XCHG [L_x],EBX | XCHG [L_y],EBX ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EAX,[L_z] | MOV EBX,[L_x] | MOV EBX,[L_y] ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [z],$1 | MOV [x],$2 | MOV [y],$1 ; MOV [L_z],$0 | MOV [L_x],$0 | MOV [L_y],$0 ; Lock03: | Lock09: | Lock15: ; MOV EAX,$1 | MOV EBX,$1 | MOV EBX,$1 ; XCHG [L_x],EAX | XCHG [L_y],EBX | XCHG [L_z],EBX ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock05 | JE Lock11 | JE Lock17 ; Lock04: | Lock10: | Lock16: ; MOV EAX,[L_x] | MOV EBX,[L_y] | MOV EBX,[L_z] ; CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock03 | JE Lock09 | JE Lock15 ; JMP Lock04 | JMP Lock10 | JMP Lock16 ; Lock05: | Lock11: | Lock17: ; MOV [x],$1 | MOV EAX,[y] | MOV EAX,[z] ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; forall (1:EAX=1 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ x=1)) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rcx) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rcx),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rax) _litmus_P0_12_: movl $0,(%rcx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rsi) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rsi),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rdx) _litmus_P0_25_: movl $0,(%rsi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) Test X052-L Required Histogram (7 states) 160788:>1:EAX=0; 2:EAX=0; x=1; 2554650:>1:EAX=1; 2:EAX=0; x=1; 2256901:>1:EAX=0; 2:EAX=1; x=1; 2240347:>1:EAX=1; 2:EAX=1; x=1; 158865:>1:EAX=1; 2:EAX=0; x=2; 179057:>1:EAX=0; 2:EAX=1; x=2; 2449392:>1:EAX=1; 2:EAX=1; x=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ (x=2 \/ x=1)) \/ 1:EAX=0 /\ (2:EAX=1 /\ (x=2 \/ x=1) \/ 2:EAX=0 /\ x=1)) is validated Hash=21af30b6d7c99bbb0929c8ff3a09b84b Time X052-L 11.72 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X053-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X053-L "Fre PodWW Wse PodWW Wse PodWR Fre PodWR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EAX,$1 | MOV EAX,$1 | MOV EBX,$1 | MOV EBX,$1 ; XCHG [L_a],EAX | XCHG [L_x],EAX | XCHG [L_y],EBX | XCHG [L_z],EBX ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EAX,[L_a] | MOV EAX,[L_x] | MOV EBX,[L_y] | MOV EBX,[L_z] ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$1 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | Lock21: ; MOV EAX,$1 | MOV EAX,$1 | MOV EBX,$1 | MOV EBX,$1 ; XCHG [L_x],EAX | XCHG [L_y],EAX | XCHG [L_z],EBX | XCHG [L_a],EBX ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock05 | JE Lock11 | JE Lock17 | JE Lock23 ; Lock04: | Lock10: | Lock16: | Lock22: ; MOV EAX,[L_x] | MOV EAX,[L_y] | MOV EBX,[L_z] | MOV EBX,[L_a] ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 | CMP EBX,$0 ; JE Lock03 | JE Lock09 | JE Lock15 | JE Lock21 ; JMP Lock04 | JMP Lock10 | JMP Lock16 | JMP Lock22 ; Lock05: | Lock11: | Lock17: | Lock23: ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[z] | MOV EAX,[a] ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | MOV [L_a],$0 ; forall (2:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r9d _litmus_P3_2_: xchgl %r9d,(%rdi) _litmus_P3_3_: cmpl $0,%r9d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%rdi),%r9d _litmus_P3_7_: cmpl $0,%r9d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rcx) _litmus_P3_12_: movl $0,(%rdi) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r9d _litmus_P3_15_: xchgl %r9d,(%r8) _litmus_P3_16_: cmpl $0,%r9d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r8),%r9d _litmus_P3_20_: cmpl $0,%r9d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%rsi),%eax _litmus_P3_25_: movl $0,(%r8) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) Test X053-L Required Histogram (15 states) 190693:>2:EAX=0; 3:EAX=0; x=1; y=1; 1695537:>2:EAX=1; 3:EAX=0; x=1; y=1; 1709735:>2:EAX=0; 3:EAX=1; x=1; y=1; 1716135:>2:EAX=1; 3:EAX=1; x=1; y=1; 5517 :>2:EAX=0; 3:EAX=0; x=2; y=1; 144161:>2:EAX=1; 3:EAX=0; x=2; y=1; 527285:>2:EAX=0; 3:EAX=1; x=2; y=1; 1509093:>2:EAX=1; 3:EAX=1; x=2; y=1; 8199 :>2:EAX=0; 3:EAX=0; x=1; y=2; 525953:>2:EAX=1; 3:EAX=0; x=1; y=2; 215813:>2:EAX=0; 3:EAX=1; x=1; y=2; 1597006:>2:EAX=1; 3:EAX=1; x=1; y=2; 2815 :>2:EAX=1; 3:EAX=0; x=2; y=2; 4384 :>2:EAX=0; 3:EAX=1; x=2; y=2; 147674:>2:EAX=1; 3:EAX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1))) \/ 2:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 3:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1)))) is validated Hash=779cf8ea22fe7caff70d0a9ca13a2d20 Time X053-L 16.41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X054-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X054-L "Fre PodWW Wse PodWR" {} P0 | P1 ; Lock00: | Lock06: ; MOV EAX,$1 | MOV EBX,$1 ; XCHG [L_y],EAX | XCHG [L_x],EBX ; CMP EAX,$0 | CMP EBX,$0 ; JE Lock02 | JE Lock08 ; Lock01: | Lock07: ; MOV EAX,[L_y] | MOV EBX,[L_x] ; CMP EAX,$0 | CMP EBX,$0 ; JE Lock00 | JE Lock06 ; JMP Lock01 | JMP Lock07 ; Lock02: | Lock08: ; MOV [y],$1 | MOV [x],$2 ; MOV [L_y],$0 | MOV [L_x],$0 ; Lock03: | Lock09: ; MOV EAX,$1 | MOV EBX,$1 ; XCHG [L_x],EAX | XCHG [L_y],EBX ; CMP EAX,$0 | CMP EBX,$0 ; JE Lock05 | JE Lock11 ; Lock04: | Lock10: ; MOV EAX,[L_x] | MOV EBX,[L_y] ; CMP EAX,$0 | CMP EBX,$0 ; JE Lock03 | JE Lock09 ; JMP Lock04 | JMP Lock10 ; Lock05: | Lock11: ; MOV [x],$1 | MOV EAX,[y] ; MOV [L_x],$0 | MOV [L_y],$0 ; forall (1:EAX=1 /\ (x=2 \/ x=1) \/ 1:EAX=0 /\ x=1) Generated assembler _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rcx) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rcx),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rax) _litmus_P0_12_: movl $0,(%rcx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rsi) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rsi),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rdx) _litmus_P0_25_: movl $0,(%rsi) Test X054-L Required Histogram (3 states) 5950368:>1:EAX=0; x=1; 8106436:>1:EAX=1; x=1; 5943196:>1:EAX=1; x=2; Ok Witnesses Positive: 20000000, Negative: 0 Condition forall (1:EAX=1 /\ (x=2 \/ x=1) \/ 1:EAX=0 /\ x=1) is validated Hash=98231cefc19f79f58d18ef9e912f76fc Time X054-L 11.24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X055-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X055-L "Fre PodWW Wse PodWR Fre PodWW Wse PodWR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EAX,$1 | MOV EBX,$1 | MOV EAX,$1 | MOV EBX,$1 ; XCHG [L_a],EAX | XCHG [L_x],EBX | XCHG [L_y],EAX | XCHG [L_z],EBX ; CMP EAX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP EBX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EAX,[L_a] | MOV EBX,[L_x] | MOV EAX,[L_y] | MOV EBX,[L_z] ; CMP EAX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP EBX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$2 | MOV [y],$1 | MOV [z],$2 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | Lock21: ; MOV EAX,$1 | MOV EBX,$1 | MOV EAX,$1 | MOV EBX,$1 ; XCHG [L_x],EAX | XCHG [L_y],EBX | XCHG [L_z],EAX | XCHG [L_a],EBX ; CMP EAX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP EBX,$0 ; JE Lock05 | JE Lock11 | JE Lock17 | JE Lock23 ; Lock04: | Lock10: | Lock16: | Lock22: ; MOV EAX,[L_x] | MOV EBX,[L_y] | MOV EAX,[L_z] | MOV EBX,[L_a] ; CMP EAX,$0 | CMP EBX,$0 | CMP EAX,$0 | CMP EBX,$0 ; JE Lock03 | JE Lock09 | JE Lock15 | JE Lock21 ; JMP Lock04 | JMP Lock10 | JMP Lock16 | JMP Lock22 ; Lock05: | Lock11: | Lock17: | Lock23: ; MOV [x],$1 | MOV EAX,[y] | MOV [z],$1 | MOV EAX,[a] ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | MOV [L_a],$0 ; forall (1:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1)))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r9d _litmus_P3_2_: xchgl %r9d,(%rdi) _litmus_P3_3_: cmpl $0,%r9d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%rdi),%r9d _litmus_P3_7_: cmpl $0,%r9d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%rcx) _litmus_P3_12_: movl $0,(%rdi) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r9d _litmus_P3_15_: xchgl %r9d,(%r8) _litmus_P3_16_: cmpl $0,%r9d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r8),%r9d _litmus_P3_20_: cmpl $0,%r9d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%rsi),%eax _litmus_P3_25_: movl $0,(%r8) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r9d _litmus_P1_2_: xchgl %r9d,(%r8) _litmus_P1_3_: cmpl $0,%r9d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r8),%r9d _litmus_P1_7_: cmpl $0,%r9d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rsi) _litmus_P1_12_: movl $0,(%r8) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r9d _litmus_P1_15_: xchgl %r9d,(%rdi) _litmus_P1_16_: cmpl $0,%r9d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdi),%r9d _litmus_P1_20_: cmpl $0,%r9d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%rcx),%eax _litmus_P1_25_: movl $0,(%rdi) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%edi _litmus_P2_2_: xchgl %edi,(%rsi) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rsi),%edi _litmus_P2_7_: cmpl $0,%edi _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%rdx) _litmus_P2_12_: movl $0,(%rsi) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%edi _litmus_P2_15_: xchgl %edi,(%rcx) _litmus_P2_16_: cmpl $0,%edi _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rcx),%edi _litmus_P2_20_: cmpl $0,%edi _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%rax) _litmus_P2_25_: movl $0,(%rcx) Test X055-L Required Histogram (15 states) 487906:>1:EAX=0; 3:EAX=0; x=1; z=1; 1646250:>1:EAX=1; 3:EAX=0; x=1; z=1; 1617486:>1:EAX=0; 3:EAX=1; x=1; z=1; 1779723:>1:EAX=1; 3:EAX=1; x=1; z=1; 4407 :>1:EAX=0; 3:EAX=0; x=2; z=1; 187763:>1:EAX=1; 3:EAX=0; x=2; z=1; 197138:>1:EAX=0; 3:EAX=1; x=2; z=1; 1716950:>1:EAX=1; 3:EAX=1; x=2; z=1; 4939 :>1:EAX=0; 3:EAX=0; x=1; z=2; 179961:>1:EAX=1; 3:EAX=0; x=1; z=2; 156568:>1:EAX=0; 3:EAX=1; x=1; z=2; 1517445:>1:EAX=1; 3:EAX=1; x=1; z=2; 6661 :>1:EAX=1; 3:EAX=0; x=2; z=2; 7054 :>1:EAX=0; 3:EAX=1; x=2; z=2; 489749:>1:EAX=1; 3:EAX=1; x=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (1:EAX=1 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1))) \/ 1:EAX=0 /\ (3:EAX=1 /\ (x=2 /\ (z=2 \/ z=1) \/ x=1 /\ (z=2 \/ z=1)) \/ 3:EAX=0 /\ (x=2 /\ z=1 \/ x=1 /\ (z=2 \/ z=1)))) is validated Hash=a88455a0adf8b1326ec8d6f234d0073a Time X055-L 16.23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X056-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X056-L "Fre PodWW Wse PodWW Wse PodWR" {} P0 | P1 | P2 ; Lock00: | Lock06: | Lock12: ; MOV EAX,$1 | MOV EAX,$1 | MOV EBX,$1 ; XCHG [L_z],EAX | XCHG [L_x],EAX | XCHG [L_y],EBX ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 ; Lock01: | Lock07: | Lock13: ; MOV EAX,[L_z] | MOV EAX,[L_x] | MOV EBX,[L_y] ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 ; JMP Lock01 | JMP Lock07 | JMP Lock13 ; Lock02: | Lock08: | Lock14: ; MOV [z],$1 | MOV [x],$2 | MOV [y],$2 ; MOV [L_z],$0 | MOV [L_x],$0 | MOV [L_y],$0 ; Lock03: | Lock09: | Lock15: ; MOV EAX,$1 | MOV EAX,$1 | MOV EBX,$1 ; XCHG [L_x],EAX | XCHG [L_y],EAX | XCHG [L_z],EBX ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 ; JE Lock05 | JE Lock11 | JE Lock17 ; Lock04: | Lock10: | Lock16: ; MOV EAX,[L_x] | MOV EAX,[L_y] | MOV EBX,[L_z] ; CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 ; JE Lock03 | JE Lock09 | JE Lock15 ; JMP Lock04 | JMP Lock10 | JMP Lock16 ; Lock05: | Lock11: | Lock17: ; MOV [x],$1 | MOV [y],$1 | MOV EAX,[z] ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; forall (2:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) Generated assembler _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r9d _litmus_P2_2_: xchgl %r9d,(%r8) _litmus_P2_3_: cmpl $0,%r9d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r8),%r9d _litmus_P2_7_: cmpl $0,%r9d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%rsi) _litmus_P2_12_: movl $0,(%r8) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r9d _litmus_P2_15_: xchgl %r9d,(%rdi) _litmus_P2_16_: cmpl $0,%r9d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rdi),%r9d _litmus_P2_20_: cmpl $0,%r9d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%rcx),%eax _litmus_P2_25_: movl $0,(%rdi) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rcx) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rcx),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rax) _litmus_P0_12_: movl $0,(%rcx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rsi) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rsi),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rdx) _litmus_P0_25_: movl $0,(%rsi) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) Test X056-L Required Histogram (7 states) 2356612:>2:EAX=0; x=1; y=1; 2102950:>2:EAX=1; x=1; y=1; 195068:>2:EAX=0; x=2; y=1; 2546854:>2:EAX=1; x=2; y=1; 190232:>2:EAX=0; x=1; y=2; 2419891:>2:EAX=1; x=1; y=2; 188393:>2:EAX=1; x=2; y=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (2:EAX=1 /\ (x=2 /\ (y=2 \/ y=1) \/ x=1 /\ (y=2 \/ y=1)) \/ 2:EAX=0 /\ (x=2 /\ y=1 \/ x=1 /\ (y=2 \/ y=1))) is validated Hash=268ac22112afe195684b81d3f5feed6d Time X056-L 12.07 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Results for ./L/X057-L.litmus % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% X86 X057-L "Fre PodWW Wse PodWW Wse PodWW Wse PodWR" {} P0 | P1 | P2 | P3 ; Lock00: | Lock06: | Lock12: | Lock18: ; MOV EAX,$1 | MOV EAX,$1 | MOV EAX,$1 | MOV EBX,$1 ; XCHG [L_a],EAX | XCHG [L_x],EAX | XCHG [L_y],EAX | XCHG [L_z],EBX ; CMP EAX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 ; JE Lock02 | JE Lock08 | JE Lock14 | JE Lock20 ; Lock01: | Lock07: | Lock13: | Lock19: ; MOV EAX,[L_a] | MOV EAX,[L_x] | MOV EAX,[L_y] | MOV EBX,[L_z] ; CMP EAX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 ; JE Lock00 | JE Lock06 | JE Lock12 | JE Lock18 ; JMP Lock01 | JMP Lock07 | JMP Lock13 | JMP Lock19 ; Lock02: | Lock08: | Lock14: | Lock20: ; MOV [a],$1 | MOV [x],$2 | MOV [y],$2 | MOV [z],$2 ; MOV [L_a],$0 | MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 ; Lock03: | Lock09: | Lock15: | Lock21: ; MOV EAX,$1 | MOV EAX,$1 | MOV EAX,$1 | MOV EBX,$1 ; XCHG [L_x],EAX | XCHG [L_y],EAX | XCHG [L_z],EAX | XCHG [L_a],EBX ; CMP EAX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 ; JE Lock05 | JE Lock11 | JE Lock17 | JE Lock23 ; Lock04: | Lock10: | Lock16: | Lock22: ; MOV EAX,[L_x] | MOV EAX,[L_y] | MOV EAX,[L_z] | MOV EBX,[L_a] ; CMP EAX,$0 | CMP EAX,$0 | CMP EAX,$0 | CMP EBX,$0 ; JE Lock03 | JE Lock09 | JE Lock15 | JE Lock21 ; JMP Lock04 | JMP Lock10 | JMP Lock16 | JMP Lock22 ; Lock05: | Lock11: | Lock17: | Lock23: ; MOV [x],$1 | MOV [y],$1 | MOV [z],$1 | MOV EAX,[a] ; MOV [L_x],$0 | MOV [L_y],$0 | MOV [L_z],$0 | MOV [L_a],$0 ; forall (3:EAX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) Generated assembler _litmus_P3_0_: LitLock18: _litmus_P3_1_: movl $1,%r9d _litmus_P3_2_: xchgl %r9d,(%rdi) _litmus_P3_3_: cmpl $0,%r9d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%rdi),%r9d _litmus_P3_7_: cmpl $0,%r9d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%rcx) _litmus_P3_12_: movl $0,(%rdi) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r9d _litmus_P3_15_: xchgl %r9d,(%r8) _litmus_P3_16_: cmpl $0,%r9d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r8),%r9d _litmus_P3_20_: cmpl $0,%r9d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%rsi),%eax _litmus_P3_25_: movl $0,(%r8) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%rsi) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rsi),%edi _litmus_P0_7_: cmpl $0,%edi _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rdx) _litmus_P0_12_: movl $0,(%rsi) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%edi _litmus_P0_15_: xchgl %edi,(%rcx) _litmus_P0_16_: cmpl $0,%edi _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rcx),%edi _litmus_P0_20_: cmpl $0,%edi _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%rax) _litmus_P0_25_: movl $0,(%rcx) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%rsi) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rsi),%edi _litmus_P1_7_: cmpl $0,%edi _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%rdx) _litmus_P1_12_: movl $0,(%rsi) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%edi _litmus_P1_15_: xchgl %edi,(%rcx) _litmus_P1_16_: cmpl $0,%edi _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rcx),%edi _litmus_P1_20_: cmpl $0,%edi _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%rax) _litmus_P1_25_: movl $0,(%rcx) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%edi _litmus_P2_2_: xchgl %edi,(%rsi) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rsi),%edi _litmus_P2_7_: cmpl $0,%edi _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%rdx) _litmus_P2_12_: movl $0,(%rsi) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%edi _litmus_P2_15_: xchgl %edi,(%rcx) _litmus_P2_16_: cmpl $0,%edi _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rcx),%edi _litmus_P2_20_: cmpl $0,%edi _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%rax) _litmus_P2_25_: movl $0,(%rcx) Test X057-L Required Histogram (15 states) 1653693:>3:EAX=0; x=1; y=1; z=1; 1737641:>3:EAX=1; x=1; y=1; z=1; 140777:>3:EAX=0; x=2; y=1; z=1; 1578219:>3:EAX=1; x=2; y=1; z=1; 509786:>3:EAX=0; x=1; y=2; z=1; 1641151:>3:EAX=1; x=1; y=2; z=1; 4660 :>3:EAX=0; x=2; y=2; z=1; 172444:>3:EAX=1; x=2; y=2; z=1; 188214:>3:EAX=0; x=1; y=1; z=2; 1650492:>3:EAX=1; x=1; y=1; z=2; 3556 :>3:EAX=0; x=2; y=1; z=2; 526021:>3:EAX=1; x=2; y=1; z=2; 4168 :>3:EAX=0; x=1; y=2; z=2; 184561:>3:EAX=1; x=1; y=2; z=2; 4617 :>3:EAX=1; x=2; y=2; z=2; Ok Witnesses Positive: 10000000, Negative: 0 Condition forall (3:EAX=1 /\ (x=2 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1))) \/ 3:EAX=0 /\ (x=2 /\ (y=2 /\ z=1 \/ y=1 /\ (z=2 \/ z=1)) \/ x=1 /\ (y=2 /\ (z=2 \/ z=1) \/ y=1 /\ (z=2 \/ z=1)))) is validated Hash=5cfda5d2f5e99d2d4c0b0bf8512e819a Time X057-L 16.81 Revision 6676, version 3.00+1 Parameters #ifndef SIZE_OF_TEST #define SIZE_OF_TEST 5000 #endif #ifndef NUMBER_OF_RUN #define NUMBER_OF_RUN 200 #endif #ifndef AVAIL #define AVAIL 8 #endif /* gcc options: -D_GNU_SOURCE -Wall -std=gnu99 -fomit-frame-pointer -O2 -m64 -pthread */ /* barrier: user */ /* launch: changing */ /* cache: false */ /* call: false */ /* affinity: incr4 */ /* randomise_affinity: false */ /* prealloc: false */ /* memory: indirect */ /* safer: true */ /* preload: true */ /* para: self */ /* speedcheck: false */ /* proc used: 8 */ GCCOPTS="-D_GNU_SOURCE -Wall -std=gnu99 -fomit-frame-pointer -O2 -m64 -pthread" LITMUSOPTS=-s 50k -r 100 +ra Tue Jan 4 22:47:33 CET 2011