Sun Jan 9 17:16:10 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,(%r9) _litmus_P1_1_: movl (%r9),%r8d _litmus_P1_2_: movl (%r10),%eax _litmus_P0_0_: movl $1,(%r10) _litmus_P0_1_: movl (%r10),%r8d _litmus_P0_2_: movl (%r9),%eax Test X000 Required Histogram (4 states) 133333575:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 342229706:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 313321589:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 11115130:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; No Witnesses Positive: 666666425, Negative: 133333575 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 19.58 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%rbp) _litmus_P2_1_: movl (%rbp),%edx _litmus_P2_2_: movl (%r12),%eax _litmus_P1_0_: movl $1,(%rbp) _litmus_P1_1_: movl (%rbp),%edx _litmus_P1_2_: movl (%r12),%eax _litmus_P0_0_: movl $1,(%r12) _litmus_P0_1_: movl (%r12),%edx _litmus_P0_2_: movl (%rbp),%eax Test X001 Required Histogram (8 states) 7223975:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 99312499:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 101403974:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 64126611:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 96803638:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 63079860:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 67164230:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 885213:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 492776025, Negative: 7223975 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 56.29 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P2_1_: movl (%r12),%edx _litmus_P2_2_: movl (%rbp),%eax _litmus_P1_0_: movl $1,(%rbp) _litmus_P1_1_: movl (%rbp),%edx _litmus_P1_2_: movl (%r12),%eax _litmus_P0_0_: movl $1,(%r12) _litmus_P0_1_: movl $1,(%r13) _litmus_P0_2_: movl (%r13),%edx _litmus_P0_3_: movl (%r14),%eax Test X002 Required Histogram (8 states) 5619218:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 88072339:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 81553808:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 79849662:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 101116588:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 77283444:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 64993263:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 1511678:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 494380782, Negative: 5619218 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 60.44 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%rbp) _litmus_P2_1_: movl (%rbp),%edx _litmus_P2_2_: movl (%r12),%eax _litmus_P1_0_: movl $1,(%rbp) _litmus_P1_1_: movl (%rbp),%edx _litmus_P1_2_: movl (%r12),%eax _litmus_P0_0_: movl $1,(%rbx) _litmus_P0_1_: movl (%rdx),%eax Test X003 Required Histogram (8 states) 5431735:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 88857459:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 96622330:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 66410512:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 99520566:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 72826918:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 69537810:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 792670:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 494568265, Negative: 5431735 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 52.91 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r10) _litmus_P3_1_: movl (%r10),%r8d _litmus_P3_2_: movl (%r9),%eax _litmus_P2_0_: movl $1,(%r9) _litmus_P2_1_: movl (%r9),%r8d _litmus_P2_2_: movl (%r10),%eax _litmus_P1_0_: movl $1,(%rbp) _litmus_P1_1_: movl (%r8),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: movl (%r8),%eax Test X004 Required Histogram (16 states) 1292739:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 23245795:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 18835530:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 31690170:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 24291599:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 61554420:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 24692217:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 14426434:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 26745005:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 39259157:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 59869913:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 15641983:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 32485239:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 13351521:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 12519584:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 98694 :>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; No Witnesses Positive: 398707261, Negative: 1292739 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 35.65 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: movl (%r10),%eax _litmus_P2_0_: movl $1,(%r10) _litmus_P2_1_: movl (%r10),%r9d _litmus_P2_2_: movl (%r11),%eax _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X005 Required Histogram (16 states) 25958277:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 37646824:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 67464754:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 18164067:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 39190218:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 20956505:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 14399781:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 498557:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 503603:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; 13197913:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; 19066206:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 20770634:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 25833487:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 53373978:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 31874359:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; 11100837:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; No Witnesses Positive: 399496397, Negative: 503603 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 41.28 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P2_1_: movl (%r12),%edx _litmus_P2_2_: movl (%r13),%eax _litmus_P1_0_: movl $2,(%r12) _litmus_P1_1_: movl (%r12),%edx _litmus_P1_2_: movl (%r13),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) Test X006 Required Histogram (12 states) 214 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 89431489:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 57858 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 102791532:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 53834 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 89699529:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 3960 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 4417350:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 863289:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=2; 61425375:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 78044106:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 73211464:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; No Witnesses Positive: 499136497, Negative: 863503 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 54.75 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: movl (%r10),%eax _litmus_P2_0_: movl $2,(%r10) _litmus_P2_1_: movl (%r10),%r9d _litmus_P2_2_: movl (%r11),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: movl (%r9),%eax Test X007 Required Histogram (24 states) 102 :>0:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 13594 :>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 22077331:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 32609811:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 29099 :>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 9073 :>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 38887542:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 25046132:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 10065 :>0:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 24964 :>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 74621287:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 20335462:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 55606 :>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 1039 :>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 21830566:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 706836:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 248937:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=2; 17008769:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=2; 11919354:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 50182697:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 11956430:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 32945963:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 24635925:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; 14843416:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; No Witnesses Positive: 399750961, Negative: 249039 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 41.42 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: movl (%r10),%eax _litmus_P2_0_: movl $2,(%r10) _litmus_P2_1_: movl (%r10),%r9d _litmus_P2_2_: movl (%r11),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X008 Required Histogram (24 states) 13478 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 41679125:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 25591 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 32986040:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 18282 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 27130684:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 3322 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 1886954:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 73 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 15460781:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 31991 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 34312398:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 6273 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 64851535:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 32484 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 24335972:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 18813548:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 50140560:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 32239480:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 16029760:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 21111 :>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; y=2; 9322920:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 8760984:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 21896654:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; No Witnesses Positive: 399978816, Negative: 21184 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 47.03 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r9) _litmus_P1_1_: movl (%r9),%r8d _litmus_P1_2_: movl (%r10),%eax _litmus_P0_0_: movl $1,(%r12) _litmus_P0_1_: movl $1,(%r10) _litmus_P0_2_: movl (%r10),%r9d _litmus_P0_3_: movl (%r11),%eax Test X009 Required Histogram (4 states) 73814654:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 309737982:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 384374728:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 32072636:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; No Witnesses Positive: 726185346, Negative: 73814654 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 25.86 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P2_1_: movl (%r12),%edx _litmus_P2_2_: movl (%rbp),%eax _litmus_P1_0_: movl $1,(%r12) _litmus_P1_1_: movl $1,(%r13) _litmus_P1_2_: movl (%r13),%edx _litmus_P1_3_: movl (%r14),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl (%rbx),%eax Test X010 Required Histogram (8 states) 5638678:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 84135376:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 84919430:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 78436154:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 86912341:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 80376517:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 77578855:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 2002649:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 494361322, Negative: 5638678 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 58.07 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P2_1_: movl (%r13),%edx _litmus_P2_2_: movl (%r12),%eax _litmus_P1_0_: movl $2,(%r13) _litmus_P1_1_: movl $1,(%r14) _litmus_P1_2_: movl (%r14),%edx _litmus_P1_3_: movl (%r15),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X011 Required Histogram (8 states) 89909648:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 87435833:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 82505224:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 3189192:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 1769679:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=2; 75887448:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 86299166:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 73003810:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; No Witnesses Positive: 498230321, Negative: 1769679 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 58.81 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r9) _litmus_P1_1_: movl (%r9),%r8d _litmus_P1_2_: movl (%r10),%eax _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: movl (%rbp),%eax Test X012 Required Histogram (4 states) 66316490:>0:EAX=0; 1:EAX=1; 1:EBX=0; 317149434:>0:EAX=1; 1:EAX=1; 1:EBX=0; 411672328:>0:EAX=0; 1:EAX=1; 1:EBX=1; 4861748:>0:EAX=1; 1:EAX=1; 1:EBX=1; No Witnesses Positive: 733683510, Negative: 66316490 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 19.87 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r10) _litmus_P3_1_: movl (%r10),%r8d _litmus_P3_2_: movl (%r9),%eax _litmus_P2_0_: movl $1,(%rbp) _litmus_P2_1_: movl (%r8),%eax _litmus_P1_0_: movl $1,(%r9) _litmus_P1_1_: movl (%r9),%r8d _litmus_P1_2_: movl (%r10),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: movl (%r8),%eax Test X013 Required Histogram (16 states) 2056298:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 21927967:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 28793751:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 27484062:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 18201095:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 48692169:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 40149911:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 13231612:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 27888761:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 38634686:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 63813393:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 17008823:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 24299408:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 10554903:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 17111568:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 151593:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; No Witnesses Positive: 397943702, Negative: 2056298 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 36.40 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: movl (%r10),%eax _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%r10) _litmus_P1_1_: movl (%r10),%r9d _litmus_P1_2_: movl (%r11),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X014 Required Histogram (24 states) 1261 :>1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 25225645:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 41389 :>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 41343158:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 8819 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 66166348:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 64441 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 23629434:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 32086 :>1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 39110349:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 12841 :>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 27367224:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 20504 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 13029633:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 735 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 622357:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 283305:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 12525588:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 5727699:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 29108464:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 22504427:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 57107218:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 19463896:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 16603179:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; No Witnesses Positive: 399715434, Negative: 284566 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 39.84 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P2_1_: movl (%r12),%edx _litmus_P2_2_: movl (%rbp),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl (%rbx),%eax _litmus_P0_0_: movl $1,(%r12) _litmus_P0_1_: movl $1,(%r13) _litmus_P0_2_: movl (%r13),%edx _litmus_P0_3_: movl (%r14),%eax Test X015 Required Histogram (8 states) 5822504:>0:EAX=1; 0:EBX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 98015027:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 73708458:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 84890079:>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 96399160:>0:EAX=1; 0:EBX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 73135414:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 66593322:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 1436036:>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 494177496, Negative: 5822504 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 56.34 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%rbp) _litmus_P2_1_: movl (%rbp),%edx _litmus_P2_2_: movl (%r12),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl (%rbx),%eax _litmus_P0_0_: movl $1,(%rbx) _litmus_P0_1_: movl (%rdx),%eax Test X016 Required Histogram (8 states) 5258097:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 91056080:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 87843223:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 72589529:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 99337644:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 76714864:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 66435436:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 765127:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 494741903, Negative: 5258097 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 49.69 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r10) _litmus_P3_1_: movl (%r10),%r8d _litmus_P3_2_: movl (%r9),%eax _litmus_P2_0_: movl $1,(%rbp) _litmus_P2_1_: movl (%r8),%eax _litmus_P1_0_: movl $1,(%rbp) _litmus_P1_1_: movl (%r8),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: movl (%r8),%eax Test X017 Required Histogram (16 states) 1045419:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 23266088:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 19714883:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 35349205:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 17118370:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 58145382:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 32212424:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 15086962:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 26269850:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 39510772:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 64167806:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 17811622:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 24186779:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 11232138:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 14831347:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 50953 :>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; No Witnesses Positive: 398954581, Negative: 1045419 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 34.71 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: movl (%r10),%eax _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X018 Required Histogram (16 states) 25450562:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 41876035:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 59864127:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 20237741:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 39976027:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 22915156:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 12298586:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 493995:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 520935:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 14329170:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 13108283:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 27952881:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 27883873:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 55881031:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 23633593:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 13578005:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; No Witnesses Positive: 399479065, Negative: 520935 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 37.17 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P2_1_: movl (%r12),%edx _litmus_P2_2_: movl (%r13),%eax _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl (%rbp),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) Test X019 Required Histogram (8 states) 98427231:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 88077654:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 78545900:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 2601629:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 1225881:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=2; 72677298:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 96243751:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 62200656:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; No Witnesses Positive: 498774119, Negative: 1225881 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 52.21 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: movl (%r10),%eax _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl (%r9),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: movl (%r9),%eax Test X020 Required Histogram (16 states) 24542335:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 32633073:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 38716662:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 19344274:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 67681303:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 19631424:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 18242033:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 358288:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 475381:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 20884525:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 13063150:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 49556392:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 21763692:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 39358544:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 22237154:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 11511770:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; No Witnesses Positive: 399524619, Negative: 475381 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 39.42 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: movl (%r10),%eax _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X021 Required Histogram (16 states) 37762312:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 24811542:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 23592472:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 850778:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 16420015:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 31408102:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 70499488:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 18483774:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 24653652:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 60006360:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 35319121:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 10964734:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 67545 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=2; 9221801:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 16274250:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 19664054:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; No Witnesses Positive: 399932455, Negative: 67545 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 46.76 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r10) _litmus_P1_1_: movl (%r10),%r9d _litmus_P1_2_: movl (%r11),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: movl $1,(%rax) Test X022 Required Histogram (5 states) 358167486:>1:EAX=2; 1:EBX=0; x=1; 345784:>1:EAX=1; 1:EBX=1; x=1; 16677208:>1:EAX=2; 1:EBX=1; x=1; 26504739:>1:EAX=2; 1:EBX=0; x=2; 398304783:>1:EAX=2; 1:EBX=1; x=2; No Witnesses Positive: 773495261, Negative: 26504739 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 21.89 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: movl (%r10),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%r10) _litmus_P1_1_: movl (%r10),%r9d _litmus_P1_2_: movl (%r11),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X023 Required Histogram (35 states) 9144 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 42 :>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 20965 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 6568 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 78765227:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 59177 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 30329681:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 14 :>1:EAX=1; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 41376 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 56 :>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 2906 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 18045 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 25014015:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 1971 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 4093600:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 151 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=0; x=2; z=1; 7915 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 5711359:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 31739829:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 13006 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 19683 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 27749121:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 30139742:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 291 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 9104047:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 25986 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 34668633:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 8801 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 31456366:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 14078 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 27229928:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 60049 :>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=2; z=2; 11194658:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 10909958:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 41583612:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; No Witnesses Positive: 399939509, Negative: 60491 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 47.52 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P2_1_: movl (%r13),%edx _litmus_P2_2_: movl (%r12),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,(%r13) _litmus_P0_1_: movl $1,(%r14) _litmus_P0_2_: movl (%r14),%edx _litmus_P0_3_: movl (%r15),%eax Test X024 Required Histogram (12 states) 603 :>0:EAX=1; 0:EBX=0; 2:EAX=1; 2:EBX=0; z=1; 46447 :>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=0; z=1; 75302876:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=0; z=1; 100100312:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=1; 43217 :>0:EAX=1; 0:EBX=0; 2:EAX=1; 2:EBX=1; z=1; 3719 :>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=1; z=1; 98914114:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=1; 4973116:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=1; 1914201:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=0; z=2; 82096947:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=2; 64630748:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=2; 71973700:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=2; No Witnesses Positive: 498085196, Negative: 1914804 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 60.58 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P2_1_: movl (%r12),%edx _litmus_P2_2_: movl (%r13),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: movl (%rdx),%eax Test X025 Required Histogram (12 states) 1146 :>0:EAX=0; 2:EAX=1; 2:EBX=0; y=1; 46398 :>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 86323284:>0:EAX=0; 2:EAX=2; 2:EBX=0; y=1; 88611403:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=1; 78342 :>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 3228 :>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 103915082:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=1; 4178035:>0:EAX=1; 2:EAX=2; 2:EBX=1; y=1; 1481260:>0:EAX=0; 2:EAX=2; 2:EBX=0; y=2; 70271959:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=2; 63050864:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=2; 82038999:>0:EAX=1; 2:EAX=2; 2:EBX=1; y=2; No Witnesses Positive: 498517594, Negative: 1482406 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 53.04 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: movl (%r10),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: movl (%r9),%eax Test X026 Required Histogram (24 states) 348 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 16288 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 15933 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 25362 :>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 20885974:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 70040382:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 31966099:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 19909892:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 22942 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 64701 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 23178 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 1305 :>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 40081883:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 21875056:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 26073833:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 447565:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 291542:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=2; 9211939:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=2; 17881607:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 31617163:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 12433295:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 31080524:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 48855722:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; 17177467:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; No Witnesses Positive: 399708110, Negative: 291890 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 38.89 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: movl (%r10),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X027 Required Histogram (24 states) 15248 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 28416 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 74051296:>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 25509578:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 65956 :>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 1594 :>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 23124736:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 1631782:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 80 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=2; z=1; 11226 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 15958270:>1:EAX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 28514810:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 17588 :>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 17681 :>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 38901574:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 25096727:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 10119121:>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 36455528:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 30878281:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 22379795:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 88329 :>1:EAX=0; 3:EAX=2; 3:EBX=0; x=2; z=2; 11970695:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 12519201:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 42642488:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; No Witnesses Positive: 399911591, Negative: 88409 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 44.20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P2_1_: movl (%r12),%edx _litmus_P2_2_: movl (%r13),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) Test X028 Required Histogram (11 states) 50217 :>2:EAX=1; 2:EBX=0; x=1; y=1; 104101132:>2:EAX=2; 2:EBX=0; x=1; y=1; 7607 :>2:EAX=1; 2:EBX=1; x=1; y=1; 5275106:>2:EAX=2; 2:EBX=1; x=1; y=1; 71111022:>2:EAX=2; 2:EBX=0; x=2; y=1; 73298 :>2:EAX=1; 2:EBX=1; x=2; y=1; 110623631:>2:EAX=2; 2:EBX=1; x=2; y=1; 77181162:>2:EAX=2; 2:EBX=0; x=1; y=2; 81380406:>2:EAX=2; 2:EBX=1; x=1; y=2; 9783 :>2:EAX=2; 2:EBX=0; x=2; y=2; 50186636:>2:EAX=2; 2:EBX=1; x=2; y=2; No Witnesses Positive: 499990217, Negative: 9783 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 57.57 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: movl (%r10),%eax _litmus_P2_0_: movl $2,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: movl (%r9),%eax Test X029 Required Histogram (24 states) 18359 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 16826 :>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 40728336:>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=1; 24775039:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=1; 46521 :>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 2923 :>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 33035574:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=1; 1299945:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=1; 228 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=2; z=1; 5298 :>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 14657381:>0:EAX=0; 3:EAX=2; 3:EBX=0; y=2; z=1; 64090427:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=1; 17703 :>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 31876 :>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 34490115:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=1; 24870591:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=1; 20905269:>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=2; 28356053:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=2; 52028901:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=2; 18078292:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=2; 38979 :>0:EAX=0; 3:EAX=2; 3:EBX=0; y=2; z=2; 6444015:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=2; 9660186:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=2; 26401163:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=2; No Witnesses Positive: 399960793, Negative: 39207 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 46.02 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: movl (%r10),%eax _litmus_P2_0_: movl $2,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X030 Required Histogram (23 states) 16565 :>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 33217595:>3:EAX=2; 3:EBX=0; x=1; y=1; z=1; 4305 :>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 3839974:>3:EAX=2; 3:EBX=1; x=1; y=1; z=1; 16406 :>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 35107461:>3:EAX=2; 3:EBX=0; x=2; y=1; z=1; 83677 :>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 37330632:>3:EAX=2; 3:EBX=1; x=2; y=1; z=1; 5899 :>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 67477713:>3:EAX=2; 3:EBX=0; x=1; y=2; z=1; 34422 :>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 26082593:>3:EAX=2; 3:EBX=1; x=1; y=2; z=1; 11304552:>3:EAX=2; 3:EBX=0; x=2; y=2; z=1; 13623 :>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 28727704:>3:EAX=2; 3:EBX=1; x=2; y=2; z=1; 34547008:>3:EAX=2; 3:EBX=0; x=1; y=1; z=2; 24960068:>3:EAX=2; 3:EBX=1; x=1; y=1; z=2; 13728782:>3:EAX=2; 3:EBX=0; x=2; y=1; z=2; 45160885:>3:EAX=2; 3:EBX=1; x=2; y=1; z=2; 7072109:>3:EAX=2; 3:EBX=0; x=1; y=2; z=2; 24817104:>3:EAX=2; 3:EBX=1; x=1; y=2; z=2; 1988 :>3:EAX=2; 3:EBX=0; x=2; y=2; z=2; 6448935:>3:EAX=2; 3:EBX=1; x=2; y=2; z=2; No Witnesses Positive: 399998012, Negative: 1988 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 50.04 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P1_1_: movl $1,(%r12) _litmus_P1_2_: movl (%r12),%r9d _litmus_P1_3_: movl (%r10),%eax _litmus_P0_0_: movl $1,(%r10) _litmus_P0_1_: movl $1,(%r11) _litmus_P0_2_: movl (%r11),%r9d _litmus_P0_3_: movl (%r12),%eax Test X031 Required Histogram (4 states) 2002006:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 385590307:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 372697670:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 39710017:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; No Witnesses Positive: 797997994, Negative: 2002006 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 32.96 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r14) _litmus_P2_1_: movl $1,(%r12) _litmus_P2_2_: movl (%r12),%edx _litmus_P2_3_: movl (%r13),%eax _litmus_P1_0_: movl $1,(%r12) _litmus_P1_1_: movl $1,(%r13) _litmus_P1_2_: movl (%r13),%edx _litmus_P1_3_: movl (%r14),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl (%rbx),%eax Test X032 Required Histogram (8 states) 3147842:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 70342047:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 81156279:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 84083740:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 76011191:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 92187239:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 91045503:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 2026159:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 496852158, Negative: 3147842 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 63.03 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r15) _litmus_P2_1_: movl $1,(%r13) _litmus_P2_2_: movl (%r13),%edx _litmus_P2_3_: movl (%r14),%eax _litmus_P1_0_: movl $2,(%r13) _litmus_P1_1_: movl $1,(%r14) _litmus_P1_2_: movl (%r14),%edx _litmus_P1_3_: movl (%r15),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X033 Required Histogram (8 states) 69773583:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 89735677:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 97018036:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 5097405:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 1933641:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=2; 75698947:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 77113855:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 83628856:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; No Witnesses Positive: 498066359, Negative: 1933641 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 66.69 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r10) _litmus_P1_1_: movl $1,(%r11) _litmus_P1_2_: movl (%r11),%r9d _litmus_P1_3_: movl (%r12),%eax _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: movl (%rbp),%eax Test X034 Required Histogram (4 states) 3457195:>0:EAX=0; 1:EAX=1; 1:EBX=0; 369944579:>0:EAX=1; 1:EAX=1; 1:EBX=0; 398050850:>0:EAX=0; 1:EAX=1; 1:EBX=1; 28547376:>0:EAX=1; 1:EAX=1; 1:EBX=1; No Witnesses Positive: 796542805, Negative: 3457195 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 26.51 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P2_1_: movl $1,(%r14) _litmus_P2_2_: movl (%r14),%edx _litmus_P2_3_: movl (%r12),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl (%rbx),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl (%rbx),%eax Test X035 Required Histogram (8 states) 3453803:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 76584103:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 83239506:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 81044943:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 89801677:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 88424765:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 77057321:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 393882:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; No Witnesses Positive: 496546197, Negative: 3453803 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 53.37 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P3_1_: movl $1,(%r10) _litmus_P3_2_: movl (%r10),%r9d _litmus_P3_3_: movl (%r11),%eax _litmus_P2_0_: movl $1,(%rbp) _litmus_P2_1_: movl (%r8),%eax _litmus_P1_0_: movl $1,(%rbp) _litmus_P1_1_: movl (%r8),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: movl (%r8),%eax Test X036 Required Histogram (16 states) 654712:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 16688281:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 14038897:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 28648107:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 17240106:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 54539621:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 33629334:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 15952698:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 18349706:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 39714596:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 67277466:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 23255079:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 32615788:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 20324357:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 16912958:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 158294:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; No Witnesses Positive: 399345288, Negative: 654712 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 39.20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P3_1_: movl $1,(%r11) _litmus_P3_2_: movl (%r11),%r10d _litmus_P3_3_: movl (%r12),%eax _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X037 Required Histogram (16 states) 18127969:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 31725136:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 63651460:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 21886340:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 38163641:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 29248464:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 21773293:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 809390:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 299756:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 9812338:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 11034057:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 25906206:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 20103605:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 63748937:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 29988204:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 13721204:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; No Witnesses Positive: 399700244, Negative: 299756 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 43.36 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r14) _litmus_P2_1_: movl $1,(%r15) _litmus_P2_2_: movl (%r15),%edx _litmus_P2_3_: movl (%r13),%eax _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl (%rbp),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X038 Required Histogram (8 states) 80942931:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 92393545:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 89726595:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 3141059:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 1440219:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=2; 72049522:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 85228343:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 75077786:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; No Witnesses Positive: 498559781, Negative: 1440219 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 58.38 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P3_1_: movl $1,(%r11) _litmus_P3_2_: movl (%r11),%r10d _litmus_P3_3_: movl (%r12),%eax _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl (%r9),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: movl (%r9),%eax Test X039 Required Histogram (16 states) 18129734:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 27617522:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 37996323:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 24282061:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 71717600:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 22298918:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 17929668:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 925956:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 325830:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 15396720:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 10923625:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 46545356:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 16019439:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 38266612:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 31026529:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 20598107:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; No Witnesses Positive: 399674170, Negative: 325830 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 44.09 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P3_1_: movl $1,(%r11) _litmus_P3_2_: movl (%r11),%r10d _litmus_P3_3_: movl (%r12),%eax _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X040 Required Histogram (16 states) 33106726:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 29072057:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 31711199:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 1793101:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 11937521:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 34444520:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 63960797:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 22692674:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 18622360:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 47843253:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 38199460:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 20287209:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 58649 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=2; 9195356:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 11425553:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 25649565:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; No Witnesses Positive: 399941351, Negative: 58649 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 50.34 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P1_1_: movl $1,(%r12) _litmus_P1_2_: movl (%r12),%r10d _litmus_P1_3_: movl (%r13),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: movl $1,(%rax) Test X041 Required Histogram (4 states) 375036866:>1:EAX=1; 1:EBX=0; x=1; 29189281:>1:EAX=1; 1:EBX=1; x=1; 21554 :>1:EAX=1; 1:EBX=0; x=2; 395752299:>1:EAX=1; 1:EBX=1; x=2; No Witnesses Positive: 799978446, Negative: 21554 Condition forall (1:EAX=1 /\ (1:EBX=1 /\ (x=2 \/ x=1) \/ 1:EBX=0 /\ x=1)) is NOT validated Hash=3ad76800dd197d5e94fede2c9fc81f40 Time X041 31.69 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r14) _litmus_P2_1_: movl $1,(%r15) _litmus_P2_2_: movl (%r15),%edx _litmus_P2_3_: movl (%r13),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl (%rbp),%eax Test X042 Required Histogram (8 states) 80357242:>0:EAX=0; 2:EAX=1; 2:EBX=0; y=1; 87616919:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 93003471:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 2581214:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 1938887:>0:EAX=0; 2:EAX=1; 2:EBX=0; y=2; 82341100:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=2; 75254916:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=2; 76906251:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=2; No Witnesses Positive: 498061113, Negative: 1938887 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 58.58 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P3_1_: movl $1,(%r11) _litmus_P3_2_: movl (%r11),%r10d _litmus_P3_3_: movl (%r12),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: movl (%r9),%eax Test X043 Required Histogram (16 states) 18430684:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 60643388:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 29667474:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 18929923:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 37600933:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 26478553:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 20461090:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 812948:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 413246:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=2; 10964590:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=2; 15437552:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 29665408:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 15563637:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 35211664:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 60415408:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; 19303502:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; No Witnesses Positive: 399586754, Negative: 413246 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 43.09 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P3_1_: movl $1,(%r11) _litmus_P3_2_: movl (%r11),%r10d _litmus_P3_3_: movl (%r12),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X044 Required Histogram (16 states) 63947039:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 22256059:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 25940974:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 1835741:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 15070572:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=2; z=1; 27100657:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 35609065:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 21240520:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 13743040:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=2; 33885445:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=2; 35729361:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=2; 27643323:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=2; 113307:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=2; z=2; 9427694:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=2; 14496856:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=2; 51960347:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=2; No Witnesses Positive: 399886693, Negative: 113307 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 48.34 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r14) _litmus_P2_1_: movl $1,(%r15) _litmus_P2_2_: movl (%r15),%edx _litmus_P2_3_: movl (%r13),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X045 Required Histogram (8 states) 95724281:>2:EAX=1; 2:EBX=0; x=1; y=1; 7313999:>2:EAX=1; 2:EBX=1; x=1; y=1; 73766818:>2:EAX=1; 2:EBX=0; x=2; y=1; 93890372:>2:EAX=1; 2:EBX=1; x=2; y=1; 79276961:>2:EAX=1; 2:EBX=0; x=1; y=2; 84319854:>2:EAX=1; 2:EBX=1; x=1; y=2; 107876:>2:EAX=1; 2:EBX=0; x=2; y=2; 65599839:>2:EAX=1; 2:EBX=1; x=2; y=2; No Witnesses Positive: 499892124, Negative: 107876 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 59.24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P3_1_: movl $1,(%r11) _litmus_P3_2_: movl (%r11),%r10d _litmus_P3_3_: movl (%r12),%eax _litmus_P2_0_: movl $2,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: movl (%r9),%eax Test X046 Required Histogram (16 states) 36339638:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 23343584:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 27700875:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 1686289:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 13612866:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=2; z=1; 55713329:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 31974649:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 27215662:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 18034338:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=2; 26652511:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=2; 65727906:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=2; 20798406:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=2; 113584:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=2; z=2; 8489883:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=2; 10995278:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=2; 31601202:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=2; No Witnesses Positive: 399886416, Negative: 113584 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 50.27 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P3_1_: movl $1,(%r11) _litmus_P3_2_: movl (%r11),%r10d _litmus_P3_3_: movl (%r12),%eax _litmus_P2_0_: movl $2,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X047 Required Histogram (16 states) 30142355:>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 3181185:>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 32695942:>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 29902148:>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 56878084:>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 29806148:>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 10940271:>3:EAX=1; 3:EBX=0; x=2; y=2; z=1; 30163496:>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 34461293:>3:EAX=1; 3:EBX=0; x=1; y=1; z=2; 28311024:>3:EAX=1; 3:EBX=1; x=1; y=1; z=2; 12415051:>3:EAX=1; 3:EBX=0; x=2; y=1; z=2; 53841194:>3:EAX=1; 3:EBX=1; x=2; y=1; z=2; 9554714:>3:EAX=1; 3:EBX=0; x=1; y=2; z=2; 29672896:>3:EAX=1; 3:EBX=1; x=1; y=2; z=2; 1371 :>3:EAX=1; 3:EBX=0; x=2; y=2; z=2; 8032828:>3:EAX=1; 3:EBX=1; x=2; y=2; z=2; No Witnesses Positive: 399998629, Negative: 1371 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 55.36 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%rbp) _litmus_P1_1_: movl (%r8),%eax _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: movl (%rbp),%eax Test X048 Required Histogram (4 states) 1501560:>0:EAX=0; 1:EAX=0; 397708997:>0:EAX=1; 1:EAX=0; 395879281:>0:EAX=0; 1:EAX=1; 4910162:>0:EAX=1; 1:EAX=1; No Witnesses Positive: 798498440, Negative: 1501560 Condition forall (0:EAX=1 /\ (1:EAX=1 \/ 1:EAX=0) \/ 0:EAX=0 /\ 1:EAX=1) is NOT validated Hash=eb447b2ffe44de821f49c40caa8e9757 Time X048 18.59 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%rdx) _litmus_P2_1_: movl (%rbx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: movl (%rbx),%eax _litmus_P0_0_: movl $1,(%rbx) _litmus_P0_1_: movl (%rdx),%eax Test X049 Required Histogram (8 states) 4879115:>0:EAX=0; 1:EAX=0; 2:EAX=0; 89620387:>0:EAX=1; 1:EAX=0; 2:EAX=0; 88905047:>0:EAX=0; 1:EAX=1; 2:EAX=0; 76288851:>0:EAX=1; 1:EAX=1; 2:EAX=0; 90086013:>0:EAX=0; 1:EAX=0; 2:EAX=1; 75226109:>0:EAX=1; 1:EAX=0; 2:EAX=1; 74982881:>0:EAX=0; 1:EAX=1; 2:EAX=1; 11597 :>0:EAX=1; 1:EAX=1; 2:EAX=1; No Witnesses Positive: 495120885, Negative: 4879115 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 46.66 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r8) _litmus_P3_1_: movl (%rbp),%eax _litmus_P2_0_: movl $1,(%rbp) _litmus_P2_1_: movl (%r8),%eax _litmus_P1_0_: movl $1,(%rbp) _litmus_P1_1_: movl (%r8),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: movl (%r8),%eax Test X050 Required Histogram (16 states) 839881:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=0; 18926394:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=0; 18673866:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=0; 35606213:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=0; 18446893:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=0; 60134341:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=0; 33890501:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=0; 17482344:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=0; 17894938:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 34675664:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 57849106:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 17369131:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 34987128:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 16265880:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 16949686:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 8034 :>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; No Witnesses Positive: 399160119, Negative: 839881 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 32.56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r9) _litmus_P3_1_: movl (%r8),%eax _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X051 Required Histogram (16 states) 21409563:>1:EAX=0; 2:EAX=0; 3:EAX=0; x=1; 38658384:>1:EAX=1; 2:EAX=0; 3:EAX=0; x=1; 67727020:>1:EAX=0; 2:EAX=1; 3:EAX=0; x=1; 20991712:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=1; 31725283:>1:EAX=0; 2:EAX=0; 3:EAX=1; x=1; 22649804:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=1; 17344436:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=1; 555677:>1:EAX=1; 2:EAX=1; 3:EAX=1; x=1; 480597:>1:EAX=0; 2:EAX=0; 3:EAX=0; x=2; 13830243:>1:EAX=1; 2:EAX=0; 3:EAX=0; x=2; 13013209:>1:EAX=0; 2:EAX=1; 3:EAX=0; x=2; 30454360:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=2; 18433758:>1:EAX=0; 2:EAX=0; 3:EAX=1; x=2; 54631216:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=2; 32453245:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=2; 15641493:>1:EAX=1; 2:EAX=1; 3:EAX=1; x=2; No Witnesses Positive: 399519403, Negative: 480597 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 38.37 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%rdx) _litmus_P2_1_: movl (%rbp),%eax _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: movl (%rbp),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) Test X052 Required Histogram (8 states) 88789793:>1:EAX=0; 2:EAX=0; x=1; 86586487:>1:EAX=1; 2:EAX=0; x=1; 82170700:>1:EAX=0; 2:EAX=1; x=1; 2870764:>1:EAX=1; 2:EAX=1; x=1; 1614904:>1:EAX=0; 2:EAX=0; x=2; 79775955:>1:EAX=1; 2:EAX=0; x=2; 85006272:>1:EAX=0; 2:EAX=1; x=2; 73185125:>1:EAX=1; 2:EAX=1; x=2; No Witnesses Positive: 498385096, Negative: 1614904 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 50.53 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r9) _litmus_P3_1_: movl (%r8),%eax _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X053 Required Histogram (16 states) 38283345:>2:EAX=0; 3:EAX=0; x=1; y=1; 30580704:>2:EAX=1; 3:EAX=0; x=1; y=1; 21399288:>2:EAX=0; 3:EAX=1; x=1; y=1; 1241224:>2:EAX=1; 3:EAX=1; x=1; y=1; 17853317:>2:EAX=0; 3:EAX=0; x=2; y=1; 32580122:>2:EAX=1; 3:EAX=0; x=2; y=1; 61902284:>2:EAX=0; 3:EAX=1; x=2; y=1; 20169647:>2:EAX=1; 3:EAX=1; x=2; y=1; 19865341:>2:EAX=0; 3:EAX=0; x=1; y=2; 60635016:>2:EAX=1; 3:EAX=0; x=1; y=2; 29634671:>2:EAX=0; 3:EAX=1; x=1; y=2; 17490902:>2:EAX=1; 3:EAX=1; x=1; y=2; 80325 :>2:EAX=0; 3:EAX=0; x=2; y=2; 8430939:>2:EAX=1; 3:EAX=0; x=2; y=2; 11367693:>2:EAX=0; 3:EAX=1; x=2; y=2; 28485182:>2:EAX=1; 3:EAX=1; x=2; y=2; No Witnesses Positive: 399919675, Negative: 80325 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 42.61 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r8) _litmus_P1_1_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: movl $1,(%rax) Test X054 Required Histogram (4 states) 401477584:>1:EAX=0; x=1; 5954679:>1:EAX=1; x=1; 5496 :>1:EAX=0; x=2; 392562241:>1:EAX=1; x=2; No Witnesses Positive: 799994504, Negative: 5496 Condition forall (1:EAX=1 /\ (x=2 \/ x=1) \/ 1:EAX=0 /\ x=1) is NOT validated Hash=62acb715d47784e9a92843581eaa8492 Time X054 21.12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r9) _litmus_P3_1_: movl (%r8),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X055 Required Histogram (16 states) 76330618:>1:EAX=0; 3:EAX=0; x=1; z=1; 21253951:>1:EAX=1; 3:EAX=0; x=1; z=1; 20940019:>1:EAX=0; 3:EAX=1; x=1; z=1; 1313839:>1:EAX=1; 3:EAX=1; x=1; z=1; 16543650:>1:EAX=0; 3:EAX=0; x=2; z=1; 27001954:>1:EAX=1; 3:EAX=0; x=2; z=1; 38257031:>1:EAX=0; 3:EAX=1; x=2; z=1; 21299035:>1:EAX=1; 3:EAX=1; x=2; z=1; 15645442:>1:EAX=0; 3:EAX=0; x=1; z=2; 38869564:>1:EAX=1; 3:EAX=0; x=1; z=2; 27580863:>1:EAX=0; 3:EAX=1; x=1; z=2; 20420077:>1:EAX=1; 3:EAX=1; x=1; z=2; 158137:>1:EAX=0; 3:EAX=0; x=2; z=2; 13020538:>1:EAX=1; 3:EAX=0; x=2; z=2; 11493354:>1:EAX=0; 3:EAX=1; x=2; z=2; 49871928:>1:EAX=1; 3:EAX=1; x=2; z=2; No Witnesses Positive: 399841863, Negative: 158137 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 42.37 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%rdx) _litmus_P2_1_: movl (%rbp),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) Test X056 Required Histogram (8 states) 91717543:>2:EAX=0; x=1; y=1; 3894177:>2:EAX=1; x=1; y=1; 79163443:>2:EAX=0; x=2; y=1; 92984707:>2:EAX=1; x=2; y=1; 89373429:>2:EAX=0; x=1; y=2; 75641443:>2:EAX=1; x=1; y=2; 49693 :>2:EAX=0; x=2; y=2; 67175565:>2:EAX=1; x=2; y=2; No Witnesses Positive: 499950307, Negative: 49693 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 54.46 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r9) _litmus_P3_1_: movl (%r8),%eax _litmus_P2_0_: movl $2,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X057 Required Histogram (16 states) 30853201:>3:EAX=0; x=1; y=1; z=1; 2393206:>3:EAX=1; x=1; y=1; z=1; 33933619:>3:EAX=0; x=2; y=1; z=1; 30542418:>3:EAX=1; x=2; y=1; z=1; 65236181:>3:EAX=0; x=1; y=2; z=1; 23211680:>3:EAX=1; x=1; y=2; z=1; 11714507:>3:EAX=0; x=2; y=2; z=1; 31845329:>3:EAX=1; x=2; y=2; z=1; 40136563:>3:EAX=0; x=1; y=1; z=2; 21187784:>3:EAX=1; x=1; y=1; z=2; 16369861:>3:EAX=0; x=2; y=1; z=2; 48388270:>3:EAX=1; x=2; y=1; z=2; 12428445:>3:EAX=0; x=1; y=2; z=2; 24866959:>3:EAX=1; x=1; y=2; z=2; 1258 :>3:EAX=0; x=2; y=2; z=2; 6890719:>3:EAX=1; x=2; y=2; z=2; No Witnesses Positive: 399998742, Negative: 1258 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 48.51 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r9) _litmus_P1_1_: movl (%r9),%r8d _litmus_P1_2_: mfence _litmus_P1_3_: movl (%r10),%eax _litmus_P0_0_: movl $1,(%r10) _litmus_P0_1_: movl (%r10),%r8d _litmus_P0_2_: mfence _litmus_P0_3_: movl (%r9),%eax Test X000-F Required Histogram (3 states) 253532268:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 232549081:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 313918651:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 800000000, 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 24.76 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%rbp) _litmus_P2_1_: movl (%rbp),%edx _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r12),%eax _litmus_P1_0_: movl $1,(%rbp) _litmus_P1_1_: movl (%rbp),%edx _litmus_P1_2_: mfence _litmus_P1_3_: movl (%r12),%eax _litmus_P0_0_: movl $1,(%r12) _litmus_P0_1_: movl (%r12),%edx _litmus_P0_2_: mfence _litmus_P0_3_: movl (%rbp),%eax Test X001-F Required Histogram (7 states) 16582636:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 16052428:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 129014721:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 11983561:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 131191423:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 130484138:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 64691093:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 63.32 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P2_1_: movl (%r12),%edx _litmus_P2_2_: mfence _litmus_P2_3_: movl (%rbp),%eax _litmus_P1_0_: movl $1,(%rbp) _litmus_P1_1_: movl (%rbp),%edx _litmus_P1_2_: mfence _litmus_P1_3_: movl (%r12),%eax _litmus_P0_0_: movl $1,(%r12) _litmus_P0_1_: movl $1,(%r13) _litmus_P0_2_: movl (%r13),%edx _litmus_P0_3_: mfence _litmus_P0_4_: movl (%r14),%eax Test X002-F Required Histogram (7 states) 12100933:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 9605782:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 118280406:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 14021630:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 125579750:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 97619382:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 122792117:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 67.97 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%rbp) _litmus_P2_1_: movl (%rbp),%edx _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r12),%eax _litmus_P1_0_: movl $1,(%rbp) _litmus_P1_1_: movl (%rbp),%edx _litmus_P1_2_: mfence _litmus_P1_3_: movl (%r12),%eax _litmus_P0_0_: movl $1,(%rbx) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rdx),%eax Test X003-F Required Histogram (7 states) 12040069:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 13745290:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 119037391:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 19445776:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 125078324:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 125823712:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 84829438:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 62.35 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r10) _litmus_P3_1_: movl (%r10),%r8d _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r9),%eax _litmus_P2_0_: movl $1,(%r9) _litmus_P2_1_: movl (%r9),%r8d _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r10),%eax _litmus_P1_0_: movl $1,(%rbp) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%r8),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%r8),%eax Test X004-F Required Histogram (15 states) 57105 :>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 24558 :>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 3994232:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 156918:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 14553363:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 1736968:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 66377792:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 503452:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 11197473:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 14131586:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 71912234:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 9492806:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 68520324:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 49919404:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 87421785:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 400000000, 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 39.66 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $1,(%r10) _litmus_P2_1_: movl (%r10),%r9d _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r11),%eax _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X005-F Required Histogram (15 states) 2083 :>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 2555579:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 15260326:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 48413861:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 13151122:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 52060583:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 58003514:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 42799097:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 453330:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; 452911:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 11343462:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 2054706:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 38823579:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 26801175:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; 87824672:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 400000000, 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 43.79 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P2_1_: movl (%r12),%edx _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r13),%eax _litmus_P1_0_: movl $2,(%r12) _litmus_P1_1_: movl (%r12),%edx _litmus_P1_2_: mfence _litmus_P1_3_: movl (%r13),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) Test X006-F Required Histogram (10 states) 15533336:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 27215 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 108754238:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 44093 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 114363432:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 26233 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 45946134:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 23708082:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 41367107:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 150230130:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 500000000, 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 61.61 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $2,(%r10) _litmus_P2_1_: movl (%r10),%r9d _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r11),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%r9),%eax Test X007-F Required Histogram (22 states) 148 :>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 1923 :>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 5978564:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 2635 :>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 36131 :>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 1144634:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 50921635:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 3533 :>0:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 27806 :>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 19766450:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 66426034:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 69415 :>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 56438 :>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 42269527:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 53574003:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 334507:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=2; 187666:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 29385036:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 1018256:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 26885990:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 13545831:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; 88363838:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 400000000, 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 43.64 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $2,(%r10) _litmus_P2_1_: movl (%r10),%r9d _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r11),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X008-F Required Histogram (22 states) 4 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 3378263:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 12805 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 32921193:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 23424 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 43404671:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 34915 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 22557748:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 1181319:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 5713 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 14006898:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 18950 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 43890263:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 259751:>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 74066358:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 7743 :>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 23775226:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 26104440:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 71810007:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 661030:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 4589454:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 37289825:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 400000000, 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 48.07 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r9) _litmus_P1_1_: movl (%r9),%r8d _litmus_P1_2_: mfence _litmus_P1_3_: movl (%r10),%eax _litmus_P0_0_: movl $1,(%r12) _litmus_P0_1_: movl $1,(%r10) _litmus_P0_2_: movl (%r10),%r9d _litmus_P0_3_: mfence _litmus_P0_4_: movl (%r11),%eax Test X009-F Required Histogram (3 states) 76241594:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 147013679:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 576744727:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 800000000, 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 29.84 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P2_1_: movl (%r12),%edx _litmus_P2_2_: mfence _litmus_P2_3_: movl (%rbp),%eax _litmus_P1_0_: movl $1,(%r12) _litmus_P1_1_: movl $1,(%r13) _litmus_P1_2_: movl (%r13),%edx _litmus_P1_3_: mfence _litmus_P1_4_: movl (%r14),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rbx),%eax Test X010-F Required Histogram (7 states) 10080603:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 6626514:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 115528909:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 13844435:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 98037234:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 111327544:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 144554761:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 63.47 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P2_1_: movl (%r13),%edx _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r12),%eax _litmus_P1_0_: movl $2,(%r13) _litmus_P1_1_: movl $1,(%r14) _litmus_P1_2_: movl (%r14),%edx _litmus_P1_3_: mfence _litmus_P1_4_: movl (%r15),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X011-F Required Histogram (7 states) 9749990:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 90688252:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 87758180:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 77861404:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 23319357:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 27049924:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 183572893:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 500000000, 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 64.16 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r9) _litmus_P1_1_: movl (%r9),%r8d _litmus_P1_2_: mfence _litmus_P1_3_: movl (%r10),%eax _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rbp),%eax Test X012-F Required Histogram (3 states) 58489655:>0:EAX=1; 1:EAX=1; 1:EBX=0; 321960850:>0:EAX=0; 1:EAX=1; 1:EBX=1; 419549495:>0:EAX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 800000000, 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 23.29 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r10) _litmus_P3_1_: movl (%r10),%r8d _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r9),%eax _litmus_P2_0_: movl $1,(%rbp) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%r8),%eax _litmus_P1_0_: movl $1,(%r9) _litmus_P1_1_: movl (%r9),%r8d _litmus_P1_2_: mfence _litmus_P1_3_: movl (%r10),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%r8),%eax Test X013-F Required Histogram (15 states) 34104 :>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 622165:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 5654955:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 23291 :>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 11553463:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 7694080:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 56716221:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 958984:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 8736690:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 21166952:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 67909698:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 5520227:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 55966935:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 66906086:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 90536149:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 400000000, 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 39.61 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%r10) _litmus_P1_1_: movl (%r10),%r9d _litmus_P1_2_: mfence _litmus_P1_3_: movl (%r11),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X014-F Required Histogram (22 states) 1710 :>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 20106 :>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 4414377:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 513 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 19205442:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 61535 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 43191404:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 4109 :>1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 8654978:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 75365 :>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 55598805:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 22285 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 55324176:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 23782 :>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 54578388:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 916517:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 61466 :>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 10761497:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 2267121:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 34366699:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 14140286:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 96309439:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 400000000, 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 43.33 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P2_1_: movl (%r12),%edx _litmus_P2_2_: mfence _litmus_P2_3_: movl (%rbp),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rbx),%eax _litmus_P0_0_: movl $1,(%r12) _litmus_P0_1_: movl $1,(%r13) _litmus_P0_2_: movl (%r13),%edx _litmus_P0_3_: mfence _litmus_P0_4_: movl (%r14),%eax Test X015-F Required Histogram (7 states) 15800770:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 4437579:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 117860126:>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 9954974:>0:EAX=1; 0:EBX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 121687557:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 81694088:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 148564906:>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 63.47 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%rbp) _litmus_P2_1_: movl (%rbp),%edx _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r12),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rbx),%eax _litmus_P0_0_: movl $1,(%rbx) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rdx),%eax Test X016-F Required Histogram (7 states) 17181109:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 8094622:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 119790274:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 14610692:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 122497841:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 112346380:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 105479082:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 57.02 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r10) _litmus_P3_1_: movl (%r10),%r8d _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r9),%eax _litmus_P2_0_: movl $1,(%rbp) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%r8),%eax _litmus_P1_0_: movl $1,(%rbp) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%r8),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%r8),%eax Test X017-F Required Histogram (15 states) 51051 :>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 61412 :>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 6657683:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 20257 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 9789792:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 2068148:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 64497499:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 516206:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 10178837:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 12842043:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 74532091:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 3569425:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 54005373:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 57805934:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 103404249:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 400000000, 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 37.89 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X018-F Required Histogram (15 states) 2204 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 5025799:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 13514966:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 49036741:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 10024297:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 51470896:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 48159667:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 54930349:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 1020220:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 69784 :>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 11550018:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 2386320:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 36559792:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 12698749:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 103550198:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 400000000, 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 40.79 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P2_1_: movl (%r12),%edx _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r13),%eax _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rbp),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) Test X019-F Required Histogram (7 states) 17524348:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 98851599:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 108365078:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 50651109:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 26977534:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 42334796:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 155295536:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 500000000, 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 58.70 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%r9),%eax Test X020-F Required Histogram (15 states) 2481 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 8251058:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 1159652:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 46287786:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 16267009:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 61605129:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 43502607:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 54354423:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 280942:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 157300:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 31544332:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 1374592:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 27637017:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 15116738:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 92458934:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 400000000, 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 42.36 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X021-F Required Histogram (15 states) 4807570:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 30495203:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 40089860:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 22578880:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 1863282:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 13931308:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 37209699:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 69840576:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 7355 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 28025451:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 26153393:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 72775127:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 638043:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 6061307:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 45522946:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 400000000, 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 45.78 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r10) _litmus_P1_1_: movl (%r10),%r9d _litmus_P1_2_: mfence _litmus_P1_3_: movl (%r11),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: movl $1,(%rax) Test X022-F Required Histogram (4 states) 24405359:>1:EAX=2; 1:EBX=0; x=1; 138227:>1:EAX=1; 1:EBX=1; x=1; 338115881:>1:EAX=2; 1:EBX=1; x=1; 437340533:>1:EAX=2; 1:EBX=1; x=2; Ok Witnesses Positive: 800000000, 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 27.43 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%r10) _litmus_P1_1_: movl (%r10),%r9d _litmus_P1_2_: mfence _litmus_P1_3_: movl (%r11),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X023-F Required Histogram (32 states) 166 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 136 :>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 19859 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 205 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 27761907:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 48322 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 40860423:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 152 :>1:EAX=1; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 43234 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 186 :>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 19466 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 23769 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 41059530:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 16456 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 32589070:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 4308 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 4584 :>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 11107875:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 57215 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 140894:>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 8417334:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 73104485:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 3901 :>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 58841 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 8516422:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 5879 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 11804503:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 114090:>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 73354326:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 2265884:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 2561548:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 66035030:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 400000000, 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 51.41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P2_1_: movl (%r13),%edx _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r12),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,(%r13) _litmus_P0_1_: movl $1,(%r14) _litmus_P0_2_: movl (%r14),%edx _litmus_P0_3_: mfence _litmus_P0_4_: movl (%r15),%eax Test X024-F Required Histogram (10 states) 63222 :>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=0; z=1; 2561491:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=0; z=1; 117416812:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=1; 9813 :>0:EAX=1; 0:EBX=0; 2:EAX=1; 2:EBX=1; z=1; 47946 :>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=1; z=1; 67842363:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=1; 93020010:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=1; 32326203:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=2; 17673679:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=2; 169038461:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=2; Ok Witnesses Positive: 500000000, 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 64.62 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P2_1_: movl (%r12),%edx _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r13),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rdx),%eax Test X025-F Required Histogram (10 states) 71314 :>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 7622419:>0:EAX=0; 2:EAX=2; 2:EBX=0; y=1; 112314406:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=1; 28477 :>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 27041 :>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 98170218:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=1; 63286796:>0:EAX=1; 2:EAX=2; 2:EBX=1; y=1; 34621335:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=2; 24047405:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=2; 159810589:>0:EAX=1; 2:EAX=2; 2:EBX=1; y=2; Ok Witnesses Positive: 500000000, 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 56.77 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%r9),%eax Test X026-F Required Histogram (22 states) 1502 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 355 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 41836 :>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 2012 :>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 16708469:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 2616508:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 61506745:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 10934 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 87848 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 82899 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 86321 :>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 2762543:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 45272504:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 46339777:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 65358954:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 167364:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=2; 258069:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 17709535:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 623129:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 14829829:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 24418433:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; 101114434:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; Ok Witnesses Positive: 400000000, 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 41.12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X027-F Required Histogram (22 states) 242 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 23692 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 19626413:>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 43928417:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 34435 :>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 27907 :>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 39798017:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 34410208:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 5044 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 5225 :>1:EAX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 12225245:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 48702 :>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 150655:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 7851755:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 78261739:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 4441 :>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 8773266:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 14624585:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 68757314:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 2139760:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 2501161:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 66801777:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 400000000, 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 46.27 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P2_1_: movl (%r12),%edx _litmus_P2_2_: mfence _litmus_P2_3_: movl (%r13),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) Test X028-F Required Histogram (10 states) 38368 :>2:EAX=1; 2:EBX=0; x=1; y=1; 93137422:>2:EAX=2; 2:EBX=0; x=1; y=1; 17112 :>2:EAX=1; 2:EBX=1; x=1; y=1; 21990699:>2:EAX=2; 2:EBX=1; x=1; y=1; 29067942:>2:EAX=2; 2:EBX=0; x=2; y=1; 65969 :>2:EAX=1; 2:EBX=1; x=2; y=1; 134527167:>2:EAX=2; 2:EBX=1; x=2; y=1; 30423210:>2:EAX=2; 2:EBX=0; x=1; y=2; 131767350:>2:EAX=2; 2:EBX=1; x=1; y=2; 58964761:>2:EAX=2; 2:EBX=1; x=2; y=2; Ok Witnesses Positive: 500000000, 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 59.46 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $2,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%r9),%eax Test X029-F Required Histogram (22 states) 5 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 19237 :>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 1494892:>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=1; 39666242:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=1; 49470 :>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 44323 :>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 33317890:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=1; 30223715:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=1; 13263 :>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 472425:>0:EAX=0; 3:EAX=2; 3:EBX=0; y=2; z=1; 37205004:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=1; 25898 :>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 281463:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 16452006:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=1; 76325604:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=1; 5108 :>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=2; 16743887:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=2; 20713984:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=2; 82785540:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=2; 1188657:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=2; 1967025:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=2; 41004362:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=2; Ok Witnesses Positive: 400000000, 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 46.38 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P3_1_: movl (%r11),%r9d _litmus_P3_2_: mfence _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $2,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X030-F Required Histogram (22 states) 13555 :>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 25082734:>3:EAX=2; 3:EBX=0; x=1; y=1; z=1; 19594 :>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 11164485:>3:EAX=2; 3:EBX=1; x=1; y=1; z=1; 4702 :>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 13181049:>3:EAX=2; 3:EBX=0; x=2; y=1; z=1; 104951:>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 52586257:>3:EAX=2; 3:EBX=1; x=2; y=1; z=1; 539 :>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 32817615:>3:EAX=2; 3:EBX=0; x=1; y=2; z=1; 207852:>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 57244867:>3:EAX=2; 3:EBX=1; x=1; y=2; z=1; 1823694:>3:EAX=2; 3:EBX=0; x=2; y=2; z=1; 100308:>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 37361306:>3:EAX=2; 3:EBX=1; x=2; y=2; z=1; 7519689:>3:EAX=2; 3:EBX=0; x=1; y=1; z=2; 53620045:>3:EAX=2; 3:EBX=1; x=1; y=1; z=2; 3268730:>3:EAX=2; 3:EBX=0; x=2; y=1; z=2; 59694354:>3:EAX=2; 3:EBX=1; x=2; y=1; z=2; 24822 :>3:EAX=2; 3:EBX=0; x=1; y=2; z=2; 37108148:>3:EAX=2; 3:EBX=1; x=1; y=2; z=2; 7050704:>3:EAX=2; 3:EBX=1; x=2; y=2; z=2; Ok Witnesses Positive: 400000000, 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 51.09 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P1_1_: movl $1,(%r12) _litmus_P1_2_: movl (%r12),%r9d _litmus_P1_3_: mfence _litmus_P1_4_: movl (%r10),%eax _litmus_P0_0_: movl $1,(%r10) _litmus_P0_1_: movl $1,(%r11) _litmus_P0_2_: movl (%r11),%r9d _litmus_P0_3_: mfence _litmus_P0_4_: movl (%r12),%eax Test X031-F Required Histogram (3 states) 17133598:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 19442884:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 763423518:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 800000000, 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 35.37 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r14) _litmus_P2_1_: movl $1,(%r12) _litmus_P2_2_: movl (%r12),%edx _litmus_P2_3_: mfence _litmus_P2_4_: movl (%r13),%eax _litmus_P1_0_: movl $1,(%r12) _litmus_P1_1_: movl $1,(%r13) _litmus_P1_2_: movl (%r13),%edx _litmus_P1_3_: mfence _litmus_P1_4_: movl (%r14),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rbx),%eax Test X032-F Required Histogram (7 states) 5601994:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 4152181:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 73937035:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 8688443:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 85758551:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 108236528:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 213625268:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 67.44 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r15) _litmus_P2_1_: movl $1,(%r13) _litmus_P2_2_: movl (%r13),%edx _litmus_P2_3_: mfence _litmus_P2_4_: movl (%r14),%eax _litmus_P1_0_: movl $2,(%r13) _litmus_P1_1_: movl $1,(%r14) _litmus_P1_2_: movl (%r14),%edx _litmus_P1_3_: mfence _litmus_P1_4_: movl (%r15),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X033-F Required Histogram (7 states) 3762000:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 53772061:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 80612987:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 131227458:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 18519806:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 18812266:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 193293422:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 500000000, 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 69.75 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r10) _litmus_P1_1_: movl $1,(%r11) _litmus_P1_2_: movl (%r11),%r9d _litmus_P1_3_: mfence _litmus_P1_4_: movl (%r12),%eax _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rbp),%eax Test X034-F Required Histogram (3 states) 2904384:>0:EAX=1; 1:EAX=1; 1:EBX=0; 59299608:>0:EAX=0; 1:EAX=1; 1:EBX=1; 737796008:>0:EAX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 800000000, 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 30.97 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P2_1_: movl $1,(%r14) _litmus_P2_2_: movl (%r14),%edx _litmus_P2_3_: mfence _litmus_P2_4_: movl (%r12),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rbx),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rbx),%eax Test X035-F Required Histogram (7 states) 7081727:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 6615379:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 80365806:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 12116071:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 118359447:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 106333604:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 169127966:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 59.87 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r12) _litmus_P3_1_: movl $1,(%r10) _litmus_P3_2_: movl (%r10),%r9d _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r11),%eax _litmus_P2_0_: movl $1,(%rbp) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%r8),%eax _litmus_P1_0_: movl $1,(%rbp) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%r8),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%r8),%eax Test X036-F Required Histogram (15 states) 31707 :>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 19641 :>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 1367014:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 11012 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 5411022:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 1223819:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 35973948:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 135160:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 4794124:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 9270644:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 68076613:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 3678182:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 60350490:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 56212048:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 153444576:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 400000000, 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 43.51 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P3_1_: movl $1,(%r11) _litmus_P3_2_: movl (%r11),%r10d _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r12),%eax _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X037-F Required Histogram (15 states) 1341 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 821702:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 6931321:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 25778035:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 7542635:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 52987052:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 52077433:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 87185572:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 137299:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 29569 :>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 6336826:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 850624:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 33073952:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 13288431:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 112958208:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 400000000, 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 47.22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r14) _litmus_P2_1_: movl $1,(%r15) _litmus_P2_2_: movl (%r15),%edx _litmus_P2_3_: mfence _litmus_P2_4_: movl (%r13),%eax _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rbp),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X038-F Required Histogram (7 states) 4588994:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 60459003:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 108831032:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 93458374:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 21358539:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 32713019:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 178591039:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 500000000, 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 61.27 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P3_1_: movl $1,(%r11) _litmus_P3_2_: movl (%r11),%r10d _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r12),%eax _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%r9),%eax Test X039-F Required Histogram (15 states) 1195 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 1454276:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 1045989:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 24145842:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 12578153:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 61857340:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 43197245:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 87850311:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 157208:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 132486:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 15138903:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 476212:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 19964284:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 13865465:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 118135091:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 400000000, 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 46.28 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P3_1_: movl $1,(%r11) _litmus_P3_2_: movl (%r11),%r10d _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r12),%eax _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X040-F Required Histogram (15 states) 944953:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 18208502:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 39906338:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 40441132:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 233761:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 7499903:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 35120489:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 81716671:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 3856 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 14364058:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 19342846:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 92171825:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 374935:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 3098977:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 46571754:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 400000000, 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 50.49 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r11) _litmus_P1_1_: movl $1,(%r12) _litmus_P1_2_: movl (%r12),%r10d _litmus_P1_3_: mfence _litmus_P1_4_: movl (%r13),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: movl $1,(%rax) Test X041-F Required Histogram (3 states) 2814426:>1:EAX=1; 1:EBX=0; x=1; 395792923:>1:EAX=1; 1:EBX=1; x=1; 401392651:>1:EAX=1; 1:EBX=1; x=2; Ok Witnesses Positive: 800000000, 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 30.85 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r14) _litmus_P2_1_: movl $1,(%r15) _litmus_P2_2_: movl (%r15),%edx _litmus_P2_3_: mfence _litmus_P2_4_: movl (%r13),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rbp),%eax Test X042-F Required Histogram (7 states) 4889291:>0:EAX=0; 2:EAX=1; 2:EBX=0; y=1; 76866936:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 84787558:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 104148193:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 17791511:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=2; 28266171:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=2; 183250340:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=2; Ok Witnesses Positive: 500000000, 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 61.00 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P3_1_: movl $1,(%r11) _litmus_P3_2_: movl (%r11),%r10d _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r12),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $1,(%r8) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%r9),%eax Test X043-F Required Histogram (15 states) 881 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 6522564:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 1738076:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 33148761:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 1867373:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 44600073:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 40154259:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 92740052:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 110599:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=2; 95559 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 5317736:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 609895:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 17891099:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 29002639:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; 126200434:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; Ok Witnesses Positive: 400000000, 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 47.91 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P3_1_: movl $1,(%r11) _litmus_P3_2_: movl (%r11),%r10d _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r12),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X044-F Required Histogram (15 states) 9725575:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 26638266:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 41354275:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 48325758:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 2707 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=2; z=1; 7369941:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 7136122:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 72097512:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 4615 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=2; 3206246:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=2; 20123372:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=2; 78689181:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=2; 746108:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=2; 3398763:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=2; 81181559:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 400000000, 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 52.51 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r14) _litmus_P2_1_: movl $1,(%r15) _litmus_P2_2_: movl (%r15),%edx _litmus_P2_3_: mfence _litmus_P2_4_: movl (%r13),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X045-F Required Histogram (7 states) 60734426:>2:EAX=1; 2:EBX=0; x=1; y=1; 51035662:>2:EAX=1; 2:EBX=1; x=1; y=1; 18690265:>2:EAX=1; 2:EBX=0; x=2; y=1; 132965983:>2:EAX=1; 2:EBX=1; x=2; y=1; 13222366:>2:EAX=1; 2:EBX=0; x=1; y=2; 150904052:>2:EAX=1; 2:EBX=1; x=1; y=2; 72447246:>2:EAX=1; 2:EBX=1; x=2; y=2; Ok Witnesses Positive: 500000000, 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 62.88 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P3_1_: movl $1,(%r11) _litmus_P3_2_: movl (%r11),%r10d _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r12),%eax _litmus_P2_0_: movl $2,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%r9),%eax Test X046-F Required Histogram (15 states) 1146180:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 22744832:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 27448282:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 46452620:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 332073:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=2; z=1; 16325836:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 13445261:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 80927165:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 2974 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=2; 5284868:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=2; 23278187:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=2; 100757848:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=2; 717226:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=2; 1979133:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=2; 59157515:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=2; Ok Witnesses Positive: 400000000, 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 50.47 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r13) _litmus_P3_1_: movl $1,(%r11) _litmus_P3_2_: movl (%r11),%r10d _litmus_P3_3_: mfence _litmus_P3_4_: movl (%r12),%eax _litmus_P2_0_: movl $2,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X047-F Required Histogram (15 states) 14884019:>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 20147543:>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 7463551:>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 51721442:>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 15584618:>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 57529909:>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 1202876:>3:EAX=1; 3:EBX=0; x=2; y=2; z=1; 35274918:>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 2670191:>3:EAX=1; 3:EBX=0; x=1; y=1; z=2; 61734324:>3:EAX=1; 3:EBX=1; x=1; y=1; z=2; 873478:>3:EAX=1; 3:EBX=0; x=2; y=1; z=2; 68230815:>3:EAX=1; 3:EBX=1; x=2; y=1; z=2; 16934 :>3:EAX=1; 3:EBX=0; x=1; y=2; z=2; 52709077:>3:EAX=1; 3:EBX=1; x=1; y=2; z=2; 9956305:>3:EAX=1; 3:EBX=1; x=2; y=2; z=2; Ok Witnesses Positive: 400000000, 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 56.49 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%rbp) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%r8),%eax _litmus_P0_0_: movl $1,(%r8) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rbp),%eax Test X048-F Required Histogram (3 states) 12183060:>0:EAX=1; 1:EAX=0; 12018738:>0:EAX=0; 1:EAX=1; 775798202:>0:EAX=1; 1:EAX=1; Ok Witnesses Positive: 800000000, 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 20.66 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%rdx) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rbx),%eax _litmus_P1_0_: movl $1,(%rdx) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rbx),%eax _litmus_P0_0_: movl $1,(%rbx) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%rdx),%eax Test X049-F Required Histogram (7 states) 8894863:>0:EAX=1; 1:EAX=0; 2:EAX=0; 9176118:>0:EAX=0; 1:EAX=1; 2:EAX=0; 111940830:>0:EAX=1; 1:EAX=1; 2:EAX=0; 9303829:>0:EAX=0; 1:EAX=0; 2:EAX=1; 114611927:>0:EAX=1; 1:EAX=0; 2:EAX=1; 111393374:>0:EAX=0; 1:EAX=1; 2:EAX=1; 134679059:>0:EAX=1; 1:EAX=1; 2:EAX=1; Ok Witnesses Positive: 500000000, 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 54.57 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r8) _litmus_P3_1_: mfence _litmus_P3_2_: movl (%rbp),%eax _litmus_P2_0_: movl $1,(%rbp) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%r8),%eax _litmus_P1_0_: movl $1,(%rbp) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%r8),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: mfence _litmus_P0_2_: movl (%r8),%eax Test X050-F Required Histogram (15 states) 54152 :>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=0; 46473 :>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=0; 4823436:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=0; 51713 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=0; 7557313:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=0; 3803031:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=0; 64790928:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=0; 67191 :>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3927497:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 7797687:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 58785243:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 4661387:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 64117492:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 58368150:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 121148307:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; Ok Witnesses Positive: 400000000, 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 36.50 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r9) _litmus_P3_1_: mfence _litmus_P3_2_: movl (%r8),%eax _litmus_P2_0_: movl $1,(%r8) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X051-F Required Histogram (15 states) 1881 :>1:EAX=0; 2:EAX=0; 3:EAX=0; x=1; 2854773:>1:EAX=1; 2:EAX=0; 3:EAX=0; x=1; 12478325:>1:EAX=0; 2:EAX=1; 3:EAX=0; x=1; 45767904:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=1; 5132911:>1:EAX=0; 2:EAX=0; 3:EAX=1; x=1; 42483352:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=1; 53059542:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=1; 69691545:>1:EAX=1; 2:EAX=1; 3:EAX=1; x=1; 520487:>1:EAX=1; 2:EAX=0; 3:EAX=0; x=2; 154063:>1:EAX=0; 2:EAX=1; 3:EAX=0; x=2; 14983788:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=2; 345998:>1:EAX=0; 2:EAX=0; 3:EAX=1; x=2; 27815567:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=2; 14901126:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=2; 109808738:>1:EAX=1; 2:EAX=1; 3:EAX=1; x=2; Ok Witnesses Positive: 400000000, 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 39.82 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%rdx) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rbp),%eax _litmus_P1_0_: movl $2,(%rdx) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%rbp),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) Test X052-F Required Histogram (7 states) 12434824:>1:EAX=0; 2:EAX=0; x=1; 100499964:>1:EAX=1; 2:EAX=0; x=1; 100706949:>1:EAX=0; 2:EAX=1; x=1; 61839153:>1:EAX=1; 2:EAX=1; x=1; 31467574:>1:EAX=1; 2:EAX=0; x=2; 28184215:>1:EAX=0; 2:EAX=1; x=2; 164867321:>1:EAX=1; 2:EAX=1; x=2; Ok Witnesses Positive: 500000000, 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 56.52 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r9) _litmus_P3_1_: mfence _litmus_P3_2_: movl (%r8),%eax _litmus_P2_0_: movl $2,(%r8) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X053-F Required Histogram (15 states) 3439058:>2:EAX=0; 3:EAX=0; x=1; y=1; 30427314:>2:EAX=1; 3:EAX=0; x=1; y=1; 34851806:>2:EAX=0; 3:EAX=1; x=1; y=1; 31445831:>2:EAX=1; 3:EAX=1; x=1; y=1; 1190056:>2:EAX=0; 3:EAX=0; x=2; y=1; 16392495:>2:EAX=1; 3:EAX=0; x=2; y=1; 30374860:>2:EAX=0; 3:EAX=1; x=2; y=1; 73981372:>2:EAX=1; 3:EAX=1; x=2; y=1; 6386 :>2:EAX=0; 3:EAX=0; x=1; y=2; 24118638:>2:EAX=1; 3:EAX=0; x=1; y=2; 14341150:>2:EAX=0; 3:EAX=1; x=1; y=2; 87167242:>2:EAX=1; 3:EAX=1; x=1; y=2; 1587280:>2:EAX=1; 3:EAX=0; x=2; y=2; 1355895:>2:EAX=0; 3:EAX=1; x=2; y=2; 49320617:>2:EAX=1; 3:EAX=1; x=2; y=2; Ok Witnesses Positive: 400000000, 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 44.71 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r8) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: movl $1,(%rax) Test X054-F Required Histogram (3 states) 8826863:>1:EAX=0; x=1; 393750249:>1:EAX=1; x=1; 397422888:>1:EAX=1; x=2; Ok Witnesses Positive: 800000000, Negative: 0 Condition forall (1:EAX=1 /\ (x=2 \/ x=1) \/ 1:EAX=0 /\ x=1) is validated Hash=fd11041c5d72fd760bc633e832dfee90 Time X054-F 24.79 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r9) _litmus_P3_1_: mfence _litmus_P3_2_: movl (%r8),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%r8) _litmus_P1_1_: mfence _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X055-F Required Histogram (15 states) 17698857:>1:EAX=0; 3:EAX=0; x=1; z=1; 40203674:>1:EAX=1; 3:EAX=0; x=1; z=1; 39497718:>1:EAX=0; 3:EAX=1; x=1; z=1; 36341474:>1:EAX=1; 3:EAX=1; x=1; z=1; 7361 :>1:EAX=0; 3:EAX=0; x=2; z=1; 16840492:>1:EAX=1; 3:EAX=0; x=2; z=1; 9317870:>1:EAX=0; 3:EAX=1; x=2; z=1; 68328954:>1:EAX=1; 3:EAX=1; x=2; z=1; 5633 :>1:EAX=0; 3:EAX=0; x=1; z=2; 9360156:>1:EAX=1; 3:EAX=0; x=1; z=2; 18115244:>1:EAX=0; 3:EAX=1; x=1; z=2; 68861353:>1:EAX=1; 3:EAX=1; x=1; z=2; 2375408:>1:EAX=1; 3:EAX=0; x=2; z=2; 2518051:>1:EAX=0; 3:EAX=1; x=2; z=2; 70527755:>1:EAX=1; 3:EAX=1; x=2; z=2; Ok Witnesses Positive: 400000000, 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 45.01 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%rdx) _litmus_P2_1_: mfence _litmus_P2_2_: movl (%rbp),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) Test X056-F Required Histogram (7 states) 78629971:>2:EAX=0; x=1; y=1; 35343083:>2:EAX=1; x=1; y=1; 32994349:>2:EAX=0; x=2; y=1; 127689108:>2:EAX=1; x=2; y=1; 24367773:>2:EAX=0; x=1; y=2; 138872875:>2:EAX=1; x=1; y=2; 62102841:>2:EAX=1; x=2; y=2; Ok Witnesses Positive: 500000000, 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 56.94 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,(%r9) _litmus_P3_1_: mfence _litmus_P3_2_: movl (%r8),%eax _litmus_P2_0_: movl $2,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X057-F Required Histogram (15 states) 24424704:>3:EAX=0; x=1; y=1; z=1; 10301299:>3:EAX=1; x=1; y=1; z=1; 14737949:>3:EAX=0; x=2; y=1; z=1; 41850207:>3:EAX=1; x=2; y=1; z=1; 29748561:>3:EAX=0; x=1; y=2; z=1; 52184760:>3:EAX=1; x=1; y=2; z=1; 3654849:>3:EAX=0; x=2; y=2; z=1; 38625175:>3:EAX=1; x=2; y=2; z=1; 7906649:>3:EAX=0; x=1; y=1; z=2; 53302859:>3:EAX=1; x=1; y=1; z=2; 3176193:>3:EAX=0; x=2; y=1; z=2; 65281162:>3:EAX=1; x=2; y=1; z=2; 31454 :>3:EAX=0; x=1; y=2; z=2; 47139505:>3:EAX=1; x=1; y=2; z=2; 7634674:>3:EAX=1; x=2; y=2; z=2; Ok Witnesses Positive: 400000000, 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 49.96 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r12d _litmus_P1_1_: xchgl %r12d,(%r9) _litmus_P1_2_: movl (%r9),%r8d _litmus_P1_3_: movl (%r10),%eax _litmus_P0_0_: movl $1,%r12d _litmus_P0_1_: xchgl %r12d,(%r10) _litmus_P0_2_: movl (%r10),%r8d _litmus_P0_3_: movl (%r9),%eax Test X000-A Required Histogram (3 states) 375913564:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 365390412:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 58696024:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 800000000, 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 19.41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P2_1_: xchgl %r13d,(%rbp) _litmus_P2_2_: movl (%rbp),%edx _litmus_P2_3_: movl (%r12),%eax _litmus_P1_0_: movl $1,%r13d _litmus_P1_1_: xchgl %r13d,(%rbp) _litmus_P1_2_: movl (%rbp),%edx _litmus_P1_3_: movl (%r12),%eax _litmus_P0_0_: movl $1,%r13d _litmus_P0_1_: xchgl %r13d,(%r12) _litmus_P0_2_: movl (%r12),%edx _litmus_P0_3_: movl (%rbp),%eax Test X001-A Required Histogram (7 states) 48689045:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 44919333:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 114955960:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 45232118:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 104788059:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 110952378:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 30463107:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 52.28 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P2_1_: xchgl %r13d,(%r12) _litmus_P2_2_: movl (%r12),%edx _litmus_P2_3_: movl (%rbp),%eax _litmus_P1_0_: movl $1,%r13d _litmus_P1_1_: xchgl %r13d,(%rbp) _litmus_P1_2_: movl (%rbp),%edx _litmus_P1_3_: movl (%r12),%eax _litmus_P0_0_: movl $1,%r15d _litmus_P0_1_: xchgl %r15d,(%r12) _litmus_P0_2_: movl $1,(%r13) _litmus_P0_3_: movl (%r13),%edx _litmus_P0_4_: movl (%r14),%eax Test X002-A Required Histogram (7 states) 51830335:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 52322855:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 109695754:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 51326811:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 103410668:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 109497999:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 21915578:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 56.32 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P2_1_: xchgl %r13d,(%rbp) _litmus_P2_2_: movl (%rbp),%edx _litmus_P2_3_: movl (%r12),%eax _litmus_P1_0_: movl $1,%r13d _litmus_P1_1_: xchgl %r13d,(%rbp) _litmus_P1_2_: movl (%rbp),%edx _litmus_P1_3_: movl (%r12),%eax _litmus_P0_0_: movl $1,%ebp _litmus_P0_1_: xchgl %ebp,(%rbx) _litmus_P0_2_: movl (%rdx),%eax Test X003-A Required Histogram (7 states) 49243149:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 46527220:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 115124488:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 51967719:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 108315276:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 108416947:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 20405201:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 51.53 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r12d _litmus_P3_1_: xchgl %r12d,(%r10) _litmus_P3_2_: movl (%r10),%r8d _litmus_P3_3_: movl (%r9),%eax _litmus_P2_0_: movl $1,%r12d _litmus_P2_1_: xchgl %r12d,(%r9) _litmus_P2_2_: movl (%r9),%r8d _litmus_P2_3_: movl (%r10),%eax _litmus_P1_0_: movl $1,%r10d _litmus_P1_1_: xchgl %r10d,(%rbp) _litmus_P1_2_: movl (%r8),%eax _litmus_P0_0_: movl $1,%r10d _litmus_P0_1_: xchgl %r10d,(%rbp) _litmus_P0_2_: movl (%r8),%eax Test X004-A Required Histogram (15 states) 5834948:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 5926195:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 28902320:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 5840108:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 44867619:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 31617903:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 38003195:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 5358781:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 27639529:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 45810573:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 38579240:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 30414079:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 43204424:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 39510772:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 8490314:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 400000000, 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 35.96 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P3_1_: xchgl %r13d,(%r11) _litmus_P3_2_: movl (%r11),%r9d _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $1,%r13d _litmus_P2_1_: xchgl %r13d,(%r10) _litmus_P2_2_: movl (%r10),%r9d _litmus_P2_3_: movl (%r11),%eax _litmus_P1_0_: movl $2,%r11d _litmus_P1_1_: xchgl %r11d,(%r8) _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X005-A Required Histogram (15 states) 1551999:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 18827476:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 50847154:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 35734715:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 32363560:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 45433622:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 38389202:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 10365648:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 8686431:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; 3245985:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 27793780:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 4576802:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 48989484:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 25673049:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; 47521093:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 400000000, 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 39.77 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r14d _litmus_P2_1_: xchgl %r14d,(%r12) _litmus_P2_2_: movl (%r12),%edx _litmus_P2_3_: movl (%r13),%eax _litmus_P1_0_: movl $2,%r14d _litmus_P1_1_: xchgl %r14d,(%r12) _litmus_P1_2_: movl (%r12),%edx _litmus_P1_3_: movl (%r13),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) Test X006-A Required Histogram (10 states) 48814383:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 7395040:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 95961242:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 822835:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 110490615:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 4686008:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 21329577:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 45599401:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 48124569:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 116776330:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 500000000, 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 54.11 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P3_1_: xchgl %r13d,(%r11) _litmus_P3_2_: movl (%r11),%r9d _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $2,%r13d _litmus_P2_1_: xchgl %r13d,(%r10) _litmus_P2_2_: movl (%r10),%r9d _litmus_P2_3_: movl (%r11),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,%r11d _litmus_P0_1_: xchgl %r11d,(%r8) _litmus_P0_2_: movl (%r9),%eax Test X007-A Required Histogram (22 states) 140070:>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 2136245:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 33186978:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 1734663:>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 4587634:>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 20026419:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 38638296:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 210495:>0:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 487718:>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 57785021:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 31226531:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 6078309:>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 2613232:>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 30431394:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 7735563:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 4186365:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=2; 7373749:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 48808293:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 3022493:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 22608084:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 25982516:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; 50999932:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 400000000, 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 40.55 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P3_1_: xchgl %r13d,(%r11) _litmus_P3_2_: movl (%r11),%r9d _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $2,%r13d _litmus_P2_1_: xchgl %r13d,(%r10) _litmus_P2_2_: movl (%r10),%r9d _litmus_P2_3_: movl (%r11),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X008-A Required Histogram (22 states) 23183 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 21182252:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 4736516:>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 34660665:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 530283:>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 37062599:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 1619204:>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 6172515:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 9322954:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 1660002:>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 23659027:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 256020:>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 57486641:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 7109207:>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 38399800:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 1274183:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 47869101:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 26601738:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 39936453:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 5740234:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 3592927:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 31104496:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 400000000, 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 46.50 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r12d _litmus_P1_1_: xchgl %r12d,(%r9) _litmus_P1_2_: movl (%r9),%r8d _litmus_P1_3_: movl (%r10),%eax _litmus_P0_0_: movl $1,%r14d _litmus_P0_1_: xchgl %r14d,(%r12) _litmus_P0_2_: movl $1,(%r10) _litmus_P0_3_: movl (%r10),%r9d _litmus_P0_4_: movl (%r11),%eax Test X009-A Required Histogram (3 states) 372083126:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 364878997:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 63037877:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 800000000, 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 26.23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P2_1_: xchgl %r13d,(%r12) _litmus_P2_2_: movl (%r12),%edx _litmus_P2_3_: movl (%rbp),%eax _litmus_P1_0_: movl $1,%r15d _litmus_P1_1_: xchgl %r15d,(%r12) _litmus_P1_2_: movl $1,(%r13) _litmus_P1_3_: movl (%r13),%edx _litmus_P1_4_: movl (%r14),%eax _litmus_P0_0_: movl $1,%ebp _litmus_P0_1_: xchgl %ebp,(%rdx) _litmus_P0_2_: movl (%rbx),%eax Test X010-A Required Histogram (7 states) 54220587:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 54955003:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 104443718:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 51348669:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 106752896:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 108279707:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 19999420:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 55.26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r14d _litmus_P2_1_: xchgl %r14d,(%r13) _litmus_P2_2_: movl (%r13),%edx _litmus_P2_3_: movl (%r12),%eax _litmus_P1_0_: movl $2,%r15d _litmus_P1_1_: xchgl %r15d,(%r12) _litmus_P1_2_: movl $1,(%r13) _litmus_P1_3_: movl (%r13),%edx _litmus_P1_4_: movl (%r14),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X011-A Required Histogram (7 states) 48107059:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 96440104:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 108795531:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 25178983:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 48505902:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 49433458:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 123538963:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 500000000, 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 58.89 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r12d _litmus_P1_1_: xchgl %r12d,(%r9) _litmus_P1_2_: movl (%r9),%r8d _litmus_P1_3_: movl (%r10),%eax _litmus_P0_0_: movl $1,%r10d _litmus_P0_1_: xchgl %r10d,(%r8) _litmus_P0_2_: movl (%rbp),%eax Test X012-A Required Histogram (3 states) 402500063:>0:EAX=1; 1:EAX=1; 1:EBX=0; 354514144:>0:EAX=0; 1:EAX=1; 1:EBX=1; 42985793:>0:EAX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 800000000, 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 17.72 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r12d _litmus_P3_1_: xchgl %r12d,(%r10) _litmus_P3_2_: movl (%r10),%r8d _litmus_P3_3_: movl (%r9),%eax _litmus_P2_0_: movl $1,%r10d _litmus_P2_1_: xchgl %r10d,(%rbp) _litmus_P2_2_: movl (%r8),%eax _litmus_P1_0_: movl $1,%r12d _litmus_P1_1_: xchgl %r12d,(%r9) _litmus_P1_2_: movl (%r9),%r8d _litmus_P1_3_: movl (%r10),%eax _litmus_P0_0_: movl $1,%r10d _litmus_P0_1_: xchgl %r10d,(%rbp) _litmus_P0_2_: movl (%r8),%eax Test X013-A Required Histogram (15 states) 5988541:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 5079846:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 28265816:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 5698782:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 41339161:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 31763062:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 42227867:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 5690438:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 29230617:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 46380456:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 40749992:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 27414211:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 41062020:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 39016028:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 10093163:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 400000000, 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 36.80 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P3_1_: xchgl %r13d,(%r11) _litmus_P3_2_: movl (%r11),%r9d _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $1,%r11d _litmus_P2_1_: xchgl %r11d,(%r8) _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $2,%r13d _litmus_P1_1_: xchgl %r13d,(%r10) _litmus_P1_2_: movl (%r10),%r9d _litmus_P1_3_: movl (%r11),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X014-A Required Histogram (22 states) 1500889:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 1739314:>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 20589383:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 210644:>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 49350869:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 6409892:>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 33475230:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 194259:>1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 34943578:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 4558136:>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 38599627:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 564494:>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 38084144:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 2392973:>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 6993726:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 7298834:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 2894114:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 26236909:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 5542518:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 48348955:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 25710739:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 44360773:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 400000000, 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 42.55 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P2_1_: xchgl %r13d,(%r12) _litmus_P2_2_: movl (%r12),%edx _litmus_P2_3_: movl (%rbp),%eax _litmus_P1_0_: movl $1,%ebp _litmus_P1_1_: xchgl %ebp,(%rdx) _litmus_P1_2_: movl (%rbx),%eax _litmus_P0_0_: movl $1,%r15d _litmus_P0_1_: xchgl %r15d,(%r12) _litmus_P0_2_: movl $1,(%r13) _litmus_P0_3_: movl (%r13),%edx _litmus_P0_4_: movl (%r14),%eax Test X015-A Required Histogram (7 states) 57736102:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 50896136:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 112226143:>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 51962075:>0:EAX=1; 0:EBX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 97935774:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 109065189:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 20178581:>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 55.35 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P2_1_: xchgl %r13d,(%rbp) _litmus_P2_2_: movl (%rbp),%edx _litmus_P2_3_: movl (%r12),%eax _litmus_P1_0_: movl $1,%ebp _litmus_P1_1_: xchgl %ebp,(%rdx) _litmus_P1_2_: movl (%rbx),%eax _litmus_P0_0_: movl $1,%ebp _litmus_P0_1_: xchgl %ebp,(%rbx) _litmus_P0_2_: movl (%rdx),%eax Test X016-A Required Histogram (7 states) 50196436:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 51987614:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 106436182:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 50854908:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 109125714:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 113031348:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 18367798:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 48.81 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r12d _litmus_P3_1_: xchgl %r12d,(%r10) _litmus_P3_2_: movl (%r10),%r8d _litmus_P3_3_: movl (%r9),%eax _litmus_P2_0_: movl $1,%r10d _litmus_P2_1_: xchgl %r10d,(%rbp) _litmus_P2_2_: movl (%r8),%eax _litmus_P1_0_: movl $1,%r10d _litmus_P1_1_: xchgl %r10d,(%rbp) _litmus_P1_2_: movl (%r8),%eax _litmus_P0_0_: movl $1,%r10d _litmus_P0_1_: xchgl %r10d,(%rbp) _litmus_P0_2_: movl (%r8),%eax Test X017-A Required Histogram (15 states) 5674237:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 6077315:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 29026790:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 6098030:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 44655022:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 31211845:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 38767639:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 6584925:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 29675144:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 45910827:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 38918997:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 30973581:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 42931926:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 36224943:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 7268779:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 400000000, 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 35.29 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P3_1_: xchgl %r13d,(%r11) _litmus_P3_2_: movl (%r11),%r9d _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $1,%r11d _litmus_P2_1_: xchgl %r11d,(%r8) _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $2,%r11d _litmus_P1_1_: xchgl %r11d,(%r8) _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X018-A Required Histogram (15 states) 1608556:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 19852042:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 48858605:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 36005200:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 34526880:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 45097572:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 37510969:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 9160502:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 8310785:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 3698558:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 28270037:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 5109556:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 48941740:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 27887400:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 45161598:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 400000000, 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 38.09 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r14d _litmus_P2_1_: xchgl %r14d,(%r12) _litmus_P2_2_: movl (%r12),%edx _litmus_P2_3_: movl (%r13),%eax _litmus_P1_0_: movl $2,%r12d _litmus_P1_1_: xchgl %r12d,(%rdx) _litmus_P1_2_: movl (%rbp),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) Test X019-A Required Histogram (7 states) 51292004:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 102066915:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 108560126:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 21086994:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 46869672:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 51068643:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 119055646:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 500000000, 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 52.05 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P3_1_: xchgl %r13d,(%r11) _litmus_P3_2_: movl (%r11),%r9d _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $2,%r11d _litmus_P2_1_: xchgl %r11d,(%r8) _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,%r11d _litmus_P0_1_: xchgl %r11d,(%r8) _litmus_P0_2_: movl (%r9),%eax Test X020-A Required Histogram (15 states) 2461033:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 33904311:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 22832784:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 42966935:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 52743613:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 33901187:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 34596893:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 8463787:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 4921363:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 9358483:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 46229978:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 3642094:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 26707708:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 27597391:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 49672440:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 400000000, 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 41.00 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P3_1_: xchgl %r13d,(%r11) _litmus_P3_2_: movl (%r11),%r9d _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $2,%r11d _litmus_P2_1_: xchgl %r11d,(%r8) _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X021-A Required Histogram (15 states) 21508620:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 38429987:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 38444465:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 7687553:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 9687301:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 27190420:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 53156286:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 42864097:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 1386722:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 42830087:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 29663474:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 41218192:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 6917752:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 4772053:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 34242991:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 400000000, 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 47.03 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P1_1_: xchgl %r13d,(%r10) _litmus_P1_2_: movl (%r10),%r9d _litmus_P1_3_: movl (%r11),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: movl $1,(%rax) Test X022-A Required Histogram (4 states) 304498129:>1:EAX=2; 1:EBX=0; x=1; 16005963:>1:EAX=1; 1:EBX=1; x=1; 38211429:>1:EAX=2; 1:EBX=1; x=1; 441284479:>1:EAX=2; 1:EBX=1; x=2; Ok Witnesses Positive: 800000000, 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 24.29 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P3_1_: xchgl %r13d,(%r11) _litmus_P3_2_: movl (%r11),%r9d _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,%r13d _litmus_P1_1_: xchgl %r13d,(%r10) _litmus_P1_2_: movl (%r10),%r9d _litmus_P1_3_: movl (%r11),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X023-A Required Histogram (32 states) 156948:>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 52455 :>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 502751:>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 185192:>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 48246320:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 7541051:>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 29551193:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 64686 :>1:EAX=1; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 7373259:>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 314169:>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 1843553:>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 466059:>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 28990088:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 2064526:>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 6332356:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 211652:>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 999126:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 33729031:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 1787555:>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 4514411:>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 19039069:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 42500013:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 872444:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 1425844:>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 18696199:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 247300:>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 34176795:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 4715927:>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 44499635:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 6344630:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 7202889:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 45352874:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 400000000, 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 52.19 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r14d _litmus_P2_1_: xchgl %r14d,(%r13) _litmus_P2_2_: movl (%r13),%edx _litmus_P2_3_: movl (%r12),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,%r15d _litmus_P0_1_: xchgl %r15d,(%r12) _litmus_P0_2_: movl $1,(%r13) _litmus_P0_3_: movl (%r13),%edx _litmus_P0_4_: movl (%r14),%eax Test X024-A Required Histogram (10 states) 748246:>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=0; z=1; 48860119:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=0; z=1; 113124741:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=1; 9765724:>0:EAX=1; 0:EBX=0; 2:EAX=1; 2:EBX=1; z=1; 4418956:>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=1; z=1; 88942776:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=1; 17541915:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=1; 53571628:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=2; 52271906:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=2; 110753989:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=2; Ok Witnesses Positive: 500000000, 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 59.23 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r14d _litmus_P2_1_: xchgl %r14d,(%r12) _litmus_P2_2_: movl (%r12),%edx _litmus_P2_3_: movl (%r13),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,%r12d _litmus_P0_1_: xchgl %r12d,(%rbp) _litmus_P0_2_: movl (%rdx),%eax Test X025-A Required Histogram (10 states) 817742:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 50194094:>0:EAX=0; 2:EAX=2; 2:EBX=0; y=1; 109657240:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=1; 8350266:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 3841734:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 95570038:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=1; 12415791:>0:EAX=1; 2:EAX=2; 2:EBX=1; y=1; 48955148:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=2; 52007679:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=2; 118190268:>0:EAX=1; 2:EAX=2; 2:EBX=1; y=2; Ok Witnesses Positive: 500000000, 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 52.20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P3_1_: xchgl %r13d,(%r11) _litmus_P3_2_: movl (%r11),%r9d _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $1,%r11d _litmus_P1_1_: xchgl %r11d,(%r8) _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,%r11d _litmus_P0_1_: xchgl %r11d,(%r8) _litmus_P0_2_: movl (%r9),%eax Test X026-A Required Histogram (22 states) 219878:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 152567:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 497325:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 2635481:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 48598768:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 39628798:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 31735501:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 1986372:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 6295935:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 4446573:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 2231496:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 22046787:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 32396311:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 37436436:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 6184214:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 4111153:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=2; 4991574:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 26312901:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 7125091:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 27168120:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 45689741:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; 48108978:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; Ok Witnesses Positive: 400000000, 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 40.03 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P3_1_: xchgl %r13d,(%r11) _litmus_P3_2_: movl (%r11),%r9d _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,%r11d _litmus_P1_1_: xchgl %r11d,(%r8) _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X027-A Required Histogram (22 states) 164385:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 405175:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 56924222:>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 30134286:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 6890325:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 2532669:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 28215680:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 9786176:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 231376:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 1054711:>1:EAX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 33521262:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 1692155:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 4907337:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 17145953:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 43180186:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 874136:>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 15612843:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 31124692:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 50191877:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 7295935:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 6511930:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 51602689:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 400000000, 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 45.44 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r14d _litmus_P2_1_: xchgl %r14d,(%r12) _litmus_P2_2_: movl (%r12),%edx _litmus_P2_3_: movl (%r13),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) Test X028-A Required Histogram (10 states) 824252:>2:EAX=1; 2:EBX=0; x=1; y=1; 97726469:>2:EAX=2; 2:EBX=0; x=1; y=1; 2845678:>2:EAX=1; 2:EBX=1; x=1; y=1; 14212424:>2:EAX=2; 2:EBX=1; x=1; y=1; 53677452:>2:EAX=2; 2:EBX=0; x=2; y=1; 8904594:>2:EAX=1; 2:EBX=1; x=2; y=1; 114455148:>2:EAX=2; 2:EBX=1; x=2; y=1; 51369253:>2:EAX=2; 2:EBX=0; x=1; y=2; 103176837:>2:EAX=2; 2:EBX=1; x=1; y=2; 52807893:>2:EAX=2; 2:EBX=1; x=2; y=2; Ok Witnesses Positive: 500000000, 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 59.27 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P3_1_: xchgl %r13d,(%r11) _litmus_P3_2_: movl (%r11),%r9d _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $2,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,%r11d _litmus_P0_1_: xchgl %r11d,(%r8) _litmus_P0_2_: movl (%r9),%eax Test X029-A Required Histogram (22 states) 40044 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 470532:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 25008132:>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=1; 36031964:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=1; 4759971:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 1580159:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 33315301:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=1; 6293479:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=1; 256849:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 10320766:>0:EAX=0; 3:EAX=2; 3:EBX=0; y=2; z=1; 52656311:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=1; 1799278:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 6999189:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 24550250:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=1; 40827364:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=1; 1806311:>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=2; 26935392:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=2; 47854376:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=2; 38220351:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=2; 4257234:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=2; 5623575:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=2; 30393172:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=2; Ok Witnesses Positive: 400000000, 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 44.75 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r13d _litmus_P3_1_: xchgl %r13d,(%r11) _litmus_P3_2_: movl (%r11),%r9d _litmus_P3_3_: movl (%r10),%eax _litmus_P2_0_: movl $2,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X030-A Required Histogram (22 states) 450099:>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 31612275:>3:EAX=2; 3:EBX=0; x=1; y=1; z=1; 1280777:>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 5446422:>3:EAX=2; 3:EBX=1; x=1; y=1; z=1; 192884:>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 30104269:>3:EAX=2; 3:EBX=0; x=2; y=1; z=1; 4824006:>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 38403713:>3:EAX=2; 3:EBX=1; x=2; y=1; z=1; 191251:>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 48445293:>3:EAX=2; 3:EBX=0; x=1; y=2; z=1; 7333253:>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 34016517:>3:EAX=2; 3:EBX=1; x=1; y=2; z=1; 8807667:>3:EAX=2; 3:EBX=0; x=2; y=2; z=1; 2122172:>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 32368772:>3:EAX=2; 3:EBX=1; x=2; y=2; z=1; 17961317:>3:EAX=2; 3:EBX=0; x=1; y=1; z=2; 39586403:>3:EAX=2; 3:EBX=1; x=1; y=1; z=2; 8811292:>3:EAX=2; 3:EBX=0; x=2; y=1; z=2; 47227325:>3:EAX=2; 3:EBX=1; x=2; y=1; z=2; 820176:>3:EAX=2; 3:EBX=0; x=1; y=2; z=2; 33332736:>3:EAX=2; 3:EBX=1; x=1; y=2; z=2; 6661381:>3:EAX=2; 3:EBX=1; x=2; y=2; z=2; Ok Witnesses Positive: 400000000, 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 52.09 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r14d _litmus_P1_1_: xchgl %r14d,(%r11) _litmus_P1_2_: movl $1,(%r12) _litmus_P1_3_: movl (%r12),%r9d _litmus_P1_4_: movl (%r10),%eax _litmus_P0_0_: movl $1,%r14d _litmus_P0_1_: xchgl %r14d,(%r10) _litmus_P0_2_: movl $1,(%r11) _litmus_P0_3_: movl (%r11),%r9d _litmus_P0_4_: movl (%r12),%eax Test X031-A Required Histogram (3 states) 384962795:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 370381876:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 44655329:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 800000000, 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 32.28 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_1_: xchgl %r15d,(%r14) _litmus_P2_2_: movl $1,(%r12) _litmus_P2_3_: movl (%r12),%edx _litmus_P2_4_: movl (%r13),%eax _litmus_P1_0_: movl $1,%r15d _litmus_P1_1_: xchgl %r15d,(%r12) _litmus_P1_2_: movl $1,(%r13) _litmus_P1_3_: movl (%r13),%edx _litmus_P1_4_: movl (%r14),%eax _litmus_P0_0_: movl $1,%ebp _litmus_P0_1_: xchgl %ebp,(%rdx) _litmus_P0_2_: movl (%rbx),%eax Test X032-A Required Histogram (7 states) 52472742:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 54960549:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 103915062:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 55980283:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 109733534:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 102513328:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 20424502:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 61.93 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_1_: xchgl %r15d,(%r14) _litmus_P2_2_: movl $1,(%r12) _litmus_P2_3_: movl (%r12),%edx _litmus_P2_4_: movl (%r13),%eax _litmus_P1_0_: movl $2,%r15d _litmus_P1_1_: xchgl %r15d,(%r12) _litmus_P1_2_: movl $1,(%r13) _litmus_P1_3_: movl (%r13),%edx _litmus_P1_4_: movl (%r14),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X033-A Required Histogram (7 states) 44080463:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 93355470:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 113201731:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 25429123:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 54930825:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 55403543:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 113598845:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 500000000, 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 65.00 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r14d _litmus_P1_1_: xchgl %r14d,(%r10) _litmus_P1_2_: movl $1,(%r11) _litmus_P1_3_: movl (%r11),%r9d _litmus_P1_4_: movl (%r12),%eax _litmus_P0_0_: movl $1,%r10d _litmus_P0_1_: xchgl %r10d,(%r8) _litmus_P0_2_: movl (%rbp),%eax Test X034-A Required Histogram (3 states) 395111194:>0:EAX=1; 1:EAX=1; 1:EBX=0; 369116116:>0:EAX=0; 1:EAX=1; 1:EBX=1; 35772690:>0:EAX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 800000000, 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 23.75 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_1_: xchgl %r15d,(%r13) _litmus_P2_2_: movl $1,(%r14) _litmus_P2_3_: movl (%r14),%edx _litmus_P2_4_: movl (%r12),%eax _litmus_P1_0_: movl $1,%ebp _litmus_P1_1_: xchgl %ebp,(%rdx) _litmus_P1_2_: movl (%rbx),%eax _litmus_P0_0_: movl $1,%ebp _litmus_P0_1_: xchgl %ebp,(%rdx) _litmus_P0_2_: movl (%rbx),%eax Test X035-A Required Histogram (7 states) 52476043:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 53636360:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 108897882:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 55452792:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 109095414:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 102336833:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 18104676:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 53.30 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r14d _litmus_P3_1_: xchgl %r14d,(%r12) _litmus_P3_2_: movl $1,(%r10) _litmus_P3_3_: movl (%r10),%r9d _litmus_P3_4_: movl (%r11),%eax _litmus_P2_0_: movl $1,%r10d _litmus_P2_1_: xchgl %r10d,(%rbp) _litmus_P2_2_: movl (%r8),%eax _litmus_P1_0_: movl $1,%r10d _litmus_P1_1_: xchgl %r10d,(%rbp) _litmus_P1_2_: movl (%r8),%eax _litmus_P0_0_: movl $1,%r10d _litmus_P0_1_: xchgl %r10d,(%rbp) _litmus_P0_2_: movl (%r8),%eax Test X036-A Required Histogram (15 states) 7356465:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 5105143:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 28090956:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 6239703:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 43490707:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 29747115:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 37511633:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 8204971:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 32448415:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 50039789:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 40457638:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 28120153:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 38532022:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 36769706:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 7885584:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 400000000, 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 39.38 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_1_: xchgl %r15d,(%r13) _litmus_P3_2_: movl $1,(%r11) _litmus_P3_3_: movl (%r11),%r10d _litmus_P3_4_: movl (%r12),%eax _litmus_P2_0_: movl $1,%r11d _litmus_P2_1_: xchgl %r11d,(%r8) _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $2,%r11d _litmus_P1_1_: xchgl %r11d,(%r8) _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X037-A Required Histogram (15 states) 2752110:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 21694594:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 44581169:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 35307802:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 39688455:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 44998943:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 34157053:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 8790236:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 8400694:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 3715103:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 28450120:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 8238499:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 50529822:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 25822125:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 42873275:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 400000000, 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 43.43 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_1_: xchgl %r15d,(%r13) _litmus_P2_2_: movl $1,(%r14) _litmus_P2_3_: movl (%r14),%edx _litmus_P2_4_: movl (%r12),%eax _litmus_P1_0_: movl $2,%r12d _litmus_P1_1_: xchgl %r12d,(%rdx) _litmus_P1_2_: movl (%rbp),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X038-A Required Histogram (7 states) 45970797:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 98338834:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 114442380:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 22930293:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 53978631:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 53800455:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 110538610:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 500000000, 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 55.80 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_1_: xchgl %r15d,(%r13) _litmus_P3_2_: movl $1,(%r11) _litmus_P3_3_: movl (%r11),%r10d _litmus_P3_4_: movl (%r12),%eax _litmus_P2_0_: movl $2,%r11d _litmus_P2_1_: xchgl %r11d,(%r8) _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,%r11d _litmus_P0_1_: xchgl %r11d,(%r8) _litmus_P0_2_: movl (%r9),%eax Test X039-A Required Histogram (15 states) 1898790:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 32782907:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 21962868:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 42340985:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 50766874:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 39092816:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 33152338:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 10100578:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 6185198:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 8824346:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 41478901:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 5782763:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 31816407:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 28212733:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 45601496:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 400000000, 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 44.05 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_1_: xchgl %r15d,(%r13) _litmus_P3_2_: movl $1,(%r11) _litmus_P3_3_: movl (%r11),%r10d _litmus_P3_4_: movl (%r12),%eax _litmus_P2_0_: movl $2,%r11d _litmus_P2_1_: xchgl %r11d,(%r8) _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X040-A Required Histogram (15 states) 21071457:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 37529494:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 37994885:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 8171223:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 8591303:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 25683046:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 59142775:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 41804240:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 1957503:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 44389317:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 31848786:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 38446296:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 6507850:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 6129101:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 30732724:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 400000000, 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 47.94 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P1_1_: xchgl %r15d,(%r11) _litmus_P1_2_: movl $1,(%r12) _litmus_P1_3_: movl (%r12),%r10d _litmus_P1_4_: movl (%r13),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: movl $1,(%rax) Test X041-A Required Histogram (3 states) 249740789:>1:EAX=1; 1:EBX=0; x=1; 95372574:>1:EAX=1; 1:EBX=1; x=1; 454886637:>1:EAX=1; 1:EBX=1; x=2; Ok Witnesses Positive: 800000000, 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 28.25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_1_: xchgl %r15d,(%r13) _litmus_P2_2_: movl $1,(%r14) _litmus_P2_3_: movl (%r14),%edx _litmus_P2_4_: movl (%r12),%eax _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,%r12d _litmus_P0_1_: xchgl %r12d,(%rdx) _litmus_P0_2_: movl (%rbp),%eax Test X042-A Required Histogram (7 states) 48027314:>0:EAX=0; 2:EAX=1; 2:EBX=0; y=1; 110015783:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 95508438:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 23089352:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 49054470:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=2; 55374489:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=2; 118930154:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=2; Ok Witnesses Positive: 500000000, 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 55.92 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_1_: xchgl %r15d,(%r13) _litmus_P3_2_: movl $1,(%r11) _litmus_P3_3_: movl (%r11),%r10d _litmus_P3_4_: movl (%r12),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $1,%r11d _litmus_P1_1_: xchgl %r11d,(%r8) _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,%r11d _litmus_P0_1_: xchgl %r11d,(%r8) _litmus_P0_2_: movl (%r9),%eax Test X043-A Required Histogram (15 states) 1817439:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 44623990:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 33526619:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 32277912:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 21085464:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 37878950:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 42610535:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 9734616:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 4596725:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=2; 4244827:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 26048453:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 9616691:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 30613824:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 52450620:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; 48873335:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; Ok Witnesses Positive: 400000000, 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 45.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,%r15d _litmus_P3_1_: xchgl %r15d,(%r13) _litmus_P3_2_: movl $1,(%r11) _litmus_P3_3_: movl (%r11),%r10d _litmus_P3_4_: movl (%r12),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,%r11d _litmus_P1_1_: xchgl %r11d,(%r8) _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X044-A Required Histogram (15 states) 48752905:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 30231499:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 32710748:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 12283822:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 942920:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=2; z=1; 32464509:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 17655103:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 48832509:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 1313526:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=2; 17393168:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=2; 36233085:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=2; 51922637:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=2; 7033904:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=2; 8976229:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=2; 53253436:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 400000000, 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 51.11 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_1_: xchgl %r15d,(%r13) _litmus_P2_2_: movl $1,(%r14) _litmus_P2_3_: movl (%r14),%edx _litmus_P2_4_: movl (%r12),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rdx) Test X045-A Required Histogram (7 states) 90879960:>2:EAX=1; 2:EBX=0; x=1; y=1; 19813468:>2:EAX=1; 2:EBX=1; x=1; y=1; 59681557:>2:EAX=1; 2:EBX=0; x=2; y=1; 116506430:>2:EAX=1; 2:EBX=1; x=2; y=1; 45304904:>2:EAX=1; 2:EBX=0; x=1; y=2; 110840836:>2:EAX=1; 2:EBX=1; x=1; y=2; 56972845:>2:EAX=1; 2:EBX=1; x=2; y=2; Ok Witnesses Positive: 500000000, 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 63.61 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_1_: xchgl %r15d,(%r13) _litmus_P3_2_: movl $1,(%r11) _litmus_P3_3_: movl (%r11),%r10d _litmus_P3_4_: movl (%r12),%eax _litmus_P2_0_: movl $2,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $1,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,%r11d _litmus_P0_1_: xchgl %r11d,(%r8) _litmus_P0_2_: movl (%r9),%eax Test X046-A Required Histogram (15 states) 23170800:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 34575292:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 36631642:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 8891068:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 9598309:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=2; z=1; 47167229:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 26294402:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 47476262:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 1641081:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=2; 27310364:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=2; 48558015:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=2; 41318792:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=2; 4951516:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=2; 7273298:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=2; 35141930:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=2; Ok Witnesses Positive: 400000000, 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 49.46 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_1_: xchgl %r15d,(%r13) _litmus_P3_2_: movl $1,(%r11) _litmus_P3_3_: movl (%r11),%r10d _litmus_P3_4_: movl (%r12),%eax _litmus_P2_0_: movl $2,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X047-A Required Histogram (15 states) 28552807:>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 8100058:>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 26193942:>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 43429491:>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 52832403:>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 39379177:>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 7424212:>3:EAX=1; 3:EBX=0; x=2; y=2; z=1; 28652874:>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 18117066:>3:EAX=1; 3:EBX=0; x=1; y=1; z=2; 39745211:>3:EAX=1; 3:EBX=1; x=1; y=1; z=2; 7322357:>3:EAX=1; 3:EBX=0; x=2; y=1; z=2; 56544100:>3:EAX=1; 3:EBX=1; x=2; y=1; z=2; 1345971:>3:EAX=1; 3:EBX=0; x=1; y=2; z=2; 34155880:>3:EAX=1; 3:EBX=1; x=1; y=2; z=2; 8204451:>3:EAX=1; 3:EBX=1; x=2; y=2; z=2; Ok Witnesses Positive: 400000000, 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 54.70 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r10d _litmus_P1_1_: xchgl %r10d,(%rbp) _litmus_P1_2_: movl (%r8),%eax _litmus_P0_0_: movl $1,%r10d _litmus_P0_1_: xchgl %r10d,(%r8) _litmus_P0_2_: movl (%rbp),%eax Test X048-A Required Histogram (3 states) 387587477:>0:EAX=1; 1:EAX=0; 380798630:>0:EAX=0; 1:EAX=1; 31613893:>0:EAX=1; 1:EAX=1; Ok Witnesses Positive: 800000000, 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 16.65 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%ebp _litmus_P2_1_: xchgl %ebp,(%rdx) _litmus_P2_2_: movl (%rbx),%eax _litmus_P1_0_: movl $1,%ebp _litmus_P1_1_: xchgl %ebp,(%rdx) _litmus_P1_2_: movl (%rbx),%eax _litmus_P0_0_: movl $1,%ebp _litmus_P0_1_: xchgl %ebp,(%rbx) _litmus_P0_2_: movl (%rdx),%eax Test X049-A Required Histogram (7 states) 50322274:>0:EAX=1; 1:EAX=0; 2:EAX=0; 53471361:>0:EAX=0; 1:EAX=1; 2:EAX=0; 108590324:>0:EAX=1; 1:EAX=1; 2:EAX=0; 53591051:>0:EAX=0; 1:EAX=0; 2:EAX=1; 110972876:>0:EAX=1; 1:EAX=0; 2:EAX=1; 107783953:>0:EAX=0; 1:EAX=1; 2:EAX=1; 15268161:>0:EAX=1; 1:EAX=1; 2:EAX=1; Ok Witnesses Positive: 500000000, 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 47.76 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r10d _litmus_P3_1_: xchgl %r10d,(%r8) _litmus_P3_2_: movl (%rbp),%eax _litmus_P2_0_: movl $1,%r10d _litmus_P2_1_: xchgl %r10d,(%rbp) _litmus_P2_2_: movl (%r8),%eax _litmus_P1_0_: movl $1,%r10d _litmus_P1_1_: xchgl %r10d,(%rbp) _litmus_P1_2_: movl (%r8),%eax _litmus_P0_0_: movl $1,%r10d _litmus_P0_1_: xchgl %r10d,(%rbp) _litmus_P0_2_: movl (%r8),%eax Test X050-A Required Histogram (15 states) 6969366:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=0; 5482112:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=0; 30895469:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=0; 6679086:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=0; 44115923:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=0; 31840068:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=0; 37071596:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=0; 6457292:>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 31091793:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 44407575:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 40195497:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 30484826:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 38577738:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 38878853:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 6852806:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; Ok Witnesses Positive: 400000000, 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 32.56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r11d _litmus_P3_1_: xchgl %r11d,(%r9) _litmus_P3_2_: movl (%r8),%eax _litmus_P2_0_: movl $1,%r11d _litmus_P2_1_: xchgl %r11d,(%r8) _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $2,%r11d _litmus_P1_1_: xchgl %r11d,(%r8) _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X051-A Required Histogram (15 states) 2164192:>1:EAX=0; 2:EAX=0; 3:EAX=0; x=1; 23146814:>1:EAX=1; 2:EAX=0; 3:EAX=0; x=1; 50210913:>1:EAX=0; 2:EAX=1; 3:EAX=0; x=1; 36115365:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=1; 35654683:>1:EAX=0; 2:EAX=0; 3:EAX=1; x=1; 42938892:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=1; 34948458:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=1; 7650041:>1:EAX=1; 2:EAX=1; 3:EAX=1; x=1; 9038248:>1:EAX=1; 2:EAX=0; 3:EAX=0; x=2; 3895836:>1:EAX=0; 2:EAX=1; 3:EAX=0; x=2; 29613553:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=2; 6471401:>1:EAX=0; 2:EAX=0; 3:EAX=1; x=2; 47668409:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=2; 27436265:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=2; 43046930:>1:EAX=1; 2:EAX=1; 3:EAX=1; x=2; Ok Witnesses Positive: 400000000, 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 37.85 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r12d _litmus_P2_1_: xchgl %r12d,(%rdx) _litmus_P2_2_: movl (%rbp),%eax _litmus_P1_0_: movl $2,%r12d _litmus_P1_1_: xchgl %r12d,(%rdx) _litmus_P1_2_: movl (%rbp),%eax _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) Test X052-A Required Histogram (7 states) 55406536:>1:EAX=0; 2:EAX=0; x=1; 105274561:>1:EAX=1; 2:EAX=0; x=1; 105935247:>1:EAX=0; 2:EAX=1; x=1; 19238679:>1:EAX=1; 2:EAX=1; x=1; 50910816:>1:EAX=1; 2:EAX=0; x=2; 51451034:>1:EAX=0; 2:EAX=1; x=2; 111783127:>1:EAX=1; 2:EAX=1; x=2; Ok Witnesses Positive: 500000000, 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 52.55 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r11d _litmus_P3_1_: xchgl %r11d,(%r9) _litmus_P3_2_: movl (%r8),%eax _litmus_P2_0_: movl $2,%r11d _litmus_P2_1_: xchgl %r11d,(%r8) _litmus_P2_2_: movl (%r9),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X053-A Required Histogram (15 states) 22460684:>2:EAX=0; 3:EAX=0; x=1; y=1; 37319633:>2:EAX=1; 3:EAX=0; x=1; y=1; 37670535:>2:EAX=0; 3:EAX=1; x=1; y=1; 7225647:>2:EAX=1; 3:EAX=1; x=1; y=1; 10352671:>2:EAX=0; 3:EAX=0; x=2; y=1; 28266873:>2:EAX=1; 3:EAX=0; x=2; y=1; 54213644:>2:EAX=0; 3:EAX=1; x=2; y=1; 42783004:>2:EAX=1; 3:EAX=1; x=2; y=1; 1672456:>2:EAX=0; 3:EAX=0; x=1; y=2; 45817775:>2:EAX=1; 3:EAX=0; x=1; y=2; 29979339:>2:EAX=0; 3:EAX=1; x=1; y=2; 38311915:>2:EAX=1; 3:EAX=1; x=1; y=2; 6823272:>2:EAX=1; 3:EAX=0; x=2; y=2; 4857837:>2:EAX=0; 3:EAX=1; x=2; y=2; 32244715:>2:EAX=1; 3:EAX=1; x=2; y=2; Ok Witnesses Positive: 400000000, 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 42.44 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r11d _litmus_P1_1_: xchgl %r11d,(%r8) _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rbp) _litmus_P0_1_: movl $1,(%rax) Test X054-A Required Histogram (3 states) 290803658:>1:EAX=0; x=1; 54194887:>1:EAX=1; x=1; 455001455:>1:EAX=1; x=2; Ok Witnesses Positive: 800000000, Negative: 0 Condition forall (1:EAX=1 /\ (x=2 \/ x=1) \/ 1:EAX=0 /\ x=1) is validated Hash=8305a3015f900654003ada1eeb4d967b Time X054-A 22.92 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r11d _litmus_P3_1_: xchgl %r11d,(%r9) _litmus_P3_2_: movl (%r8),%eax _litmus_P2_0_: movl $1,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,%r11d _litmus_P1_1_: xchgl %r11d,(%r8) _litmus_P1_2_: movl (%r9),%eax _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X055-A Required Histogram (15 states) 56166052:>1:EAX=0; 3:EAX=0; x=1; z=1; 30630368:>1:EAX=1; 3:EAX=0; x=1; z=1; 33148940:>1:EAX=0; 3:EAX=1; x=1; z=1; 10912368:>1:EAX=1; 3:EAX=1; x=1; z=1; 1060493:>1:EAX=0; 3:EAX=0; x=2; z=1; 33722366:>1:EAX=1; 3:EAX=0; x=2; z=1; 19577468:>1:EAX=0; 3:EAX=1; x=2; z=1; 46240910:>1:EAX=1; 3:EAX=1; x=2; z=1; 872258:>1:EAX=0; 3:EAX=0; x=1; z=2; 18650353:>1:EAX=1; 3:EAX=0; x=1; z=2; 32008244:>1:EAX=0; 3:EAX=1; x=1; z=2; 48130166:>1:EAX=1; 3:EAX=1; x=1; z=2; 8249074:>1:EAX=1; 3:EAX=0; x=2; z=2; 8289248:>1:EAX=0; 3:EAX=1; x=2; z=2; 52341692:>1:EAX=1; 3:EAX=1; x=2; z=2; Ok Witnesses Positive: 400000000, 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 42.96 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r12d _litmus_P2_1_: xchgl %r12d,(%rdx) _litmus_P2_2_: movl (%rbp),%eax _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rdx) _litmus_P0_0_: movl $1,(%rdx) _litmus_P0_1_: movl $1,(%rax) Test X056-A Required Histogram (7 states) 90496469:>2:EAX=0; x=1; y=1; 12836123:>2:EAX=1; x=1; y=1; 66199958:>2:EAX=0; x=2; y=1; 116927672:>2:EAX=1; x=2; y=1; 49572104:>2:EAX=0; x=1; y=2; 108125038:>2:EAX=1; x=1; y=2; 55842636:>2:EAX=1; x=2; y=2; Ok Witnesses Positive: 500000000, 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 57.25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r11d _litmus_P3_1_: xchgl %r11d,(%r9) _litmus_P3_2_: movl (%r8),%eax _litmus_P2_0_: movl $2,(%rax) _litmus_P2_1_: movl $1,(%rbp) _litmus_P1_0_: movl $2,(%rax) _litmus_P1_1_: movl $1,(%rbp) _litmus_P0_0_: movl $1,(%rax) _litmus_P0_1_: movl $1,(%rbp) Test X057-A Required Histogram (15 states) 29199142:>3:EAX=0; x=1; y=1; z=1; 6204488:>3:EAX=1; x=1; y=1; z=1; 27516617:>3:EAX=0; x=2; y=1; z=1; 41745397:>3:EAX=1; x=2; y=1; z=1; 57671452:>3:EAX=0; x=1; y=2; z=1; 36620618:>3:EAX=1; x=1; y=2; z=1; 8309353:>3:EAX=0; x=2; y=2; z=1; 31269326:>3:EAX=1; x=2; y=2; z=1; 18592215:>3:EAX=0; x=1; y=1; z=2; 37793342:>3:EAX=1; x=1; y=1; z=2; 8946267:>3:EAX=0; x=2; y=1; z=2; 54182810:>3:EAX=1; x=2; y=1; z=2; 1028917:>3:EAX=0; x=1; y=2; z=2; 33389448:>3:EAX=1; x=1; y=2; z=2; 7530608:>3:EAX=1; x=2; y=2; z=2; Ok Witnesses Positive: 400000000, 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 49.36 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P1_2_: xchgl %r15d,(%r11) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r11),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r13) _litmus_P1_12_: movl $0,(%r11) _litmus_P1_13_: movl (%r13),%ebp _litmus_P1_14_: LitLock09: _litmus_P1_15_: movl $1,%r15d _litmus_P1_16_: xchgl %r15d,(%r12) _litmus_P1_17_: cmpl $0,%r15d _litmus_P1_18_: je LitLock11 _litmus_P1_19_: LitLock10: _litmus_P1_20_: movl (%r12),%r15d _litmus_P1_21_: cmpl $0,%r15d _litmus_P1_22_: je LitLock09 _litmus_P1_23_: jmp LitLock10 _litmus_P1_24_: LitLock11: _litmus_P1_25_: movl (%r14),%ebx _litmus_P1_26_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%r12) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r12),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r14) _litmus_P0_12_: movl $0,(%r12) _litmus_P0_13_: movl (%r14),%ebp _litmus_P0_14_: LitLock03: _litmus_P0_15_: movl $1,%r15d _litmus_P0_16_: xchgl %r15d,(%r11) _litmus_P0_17_: cmpl $0,%r15d _litmus_P0_18_: je LitLock05 _litmus_P0_19_: LitLock04: _litmus_P0_20_: movl (%r11),%r15d _litmus_P0_21_: cmpl $0,%r15d _litmus_P0_22_: je LitLock03 _litmus_P0_23_: jmp LitLock04 _litmus_P0_24_: LitLock05: _litmus_P0_25_: movl (%r13),%ebx _litmus_P0_26_: movl $0,(%r11) Test X000-L Required Histogram (3 states) 98267077:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 103642750:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 598090173:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 800000000, 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 36.02 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_2_: xchgl %r15d,(%rbp) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rbp),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r13) _litmus_P2_12_: movl $0,(%rbp) _litmus_P2_13_: movl (%r13),%edx _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r15d _litmus_P2_16_: xchgl %r15d,(%r12) _litmus_P2_17_: cmpl $0,%r15d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r12),%r15d _litmus_P2_21_: cmpl $0,%r15d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%r14),%eax _litmus_P2_26_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%rbp) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rbp),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r13) _litmus_P1_12_: movl $0,(%rbp) _litmus_P1_13_: movl (%r13),%edx _litmus_P1_14_: LitLock09: _litmus_P1_15_: movl $1,%r15d _litmus_P1_16_: xchgl %r15d,(%r12) _litmus_P1_17_: cmpl $0,%r15d _litmus_P1_18_: je LitLock11 _litmus_P1_19_: LitLock10: _litmus_P1_20_: movl (%r12),%r15d _litmus_P1_21_: cmpl $0,%r15d _litmus_P1_22_: je LitLock09 _litmus_P1_23_: jmp LitLock10 _litmus_P1_24_: LitLock11: _litmus_P1_25_: movl (%r14),%eax _litmus_P1_26_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%r12) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r12),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r14) _litmus_P0_12_: movl $0,(%r12) _litmus_P0_13_: movl (%r14),%edx _litmus_P0_14_: LitLock03: _litmus_P0_15_: movl $1,%r15d _litmus_P0_16_: xchgl %r15d,(%rbp) _litmus_P0_17_: cmpl $0,%r15d _litmus_P0_18_: je LitLock05 _litmus_P0_19_: LitLock04: _litmus_P0_20_: movl (%rbp),%r15d _litmus_P0_21_: cmpl $0,%r15d _litmus_P0_22_: je LitLock03 _litmus_P0_23_: jmp LitLock04 _litmus_P0_24_: LitLock05: _litmus_P0_25_: movl (%r13),%eax _litmus_P0_26_: movl $0,(%rbp) Test X001-L Required Histogram (7 states) 13868993:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 12088449:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 114763524:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 11133175:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 112365065:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 112626862:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 123153932:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 84.79 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_2_: xchgl %r15d,(%r12) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r12),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r14) _litmus_P2_12_: movl $0,(%r12) _litmus_P2_13_: movl (%r14),%edx _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r15d _litmus_P2_16_: xchgl %r15d,(%rbp) _litmus_P2_17_: cmpl $0,%r15d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%rbp),%r15d _litmus_P2_21_: cmpl $0,%r15d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%r13),%eax _litmus_P2_26_: movl $0,(%rbp) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%rbp) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rbp),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r13) _litmus_P1_12_: movl $0,(%rbp) _litmus_P1_13_: movl (%r13),%edx _litmus_P1_14_: LitLock09: _litmus_P1_15_: movl $1,%r15d _litmus_P1_16_: xchgl %r15d,(%r12) _litmus_P1_17_: cmpl $0,%r15d _litmus_P1_18_: je LitLock11 _litmus_P1_19_: LitLock10: _litmus_P1_20_: movl (%r12),%r15d _litmus_P1_21_: cmpl $0,%r15d _litmus_P1_22_: je LitLock09 _litmus_P1_23_: jmp LitLock10 _litmus_P1_24_: LitLock11: _litmus_P1_25_: movl (%r14),%eax _litmus_P1_26_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%r12) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r12),%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,(%r14) _litmus_P0_12_: movl $0,(%r12) _litmus_P0_13_: movl $1,(%r15) _litmus_P0_14_: movl (%r15),%edx _litmus_P0_15_: LitLock03: _litmus_P0_16_: movl $1,%edi _litmus_P0_17_: xchgl %edi,(%r13) _litmus_P0_18_: cmpl $0,%edi _litmus_P0_19_: je LitLock05 _litmus_P0_20_: LitLock04: _litmus_P0_21_: movl (%r13),%edi _litmus_P0_22_: cmpl $0,%edi _litmus_P0_23_: je LitLock03 _litmus_P0_24_: jmp LitLock04 _litmus_P0_25_: LitLock05: _litmus_P0_26_: movl (%rax),%ecx _litmus_P0_27_: movl $0,(%r13) Test X002-L Required Histogram (7 states) 13781893:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 9051366:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 115632491:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2156517:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 128288569:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 60818156:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 170271008:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 90.08 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_2_: xchgl %r15d,(%rbp) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rbp),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r13) _litmus_P2_12_: movl $0,(%rbp) _litmus_P2_13_: movl (%r13),%edx _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r15d _litmus_P2_16_: xchgl %r15d,(%r12) _litmus_P2_17_: cmpl $0,%r15d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r12),%r15d _litmus_P2_21_: cmpl $0,%r15d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%r14),%eax _litmus_P2_26_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%rbp) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rbp),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r13) _litmus_P1_12_: movl $0,(%rbp) _litmus_P1_13_: movl (%r13),%edx _litmus_P1_14_: LitLock09: _litmus_P1_15_: movl $1,%r15d _litmus_P1_16_: xchgl %r15d,(%r12) _litmus_P1_17_: cmpl $0,%r15d _litmus_P1_18_: je LitLock11 _litmus_P1_19_: LitLock10: _litmus_P1_20_: movl (%r12),%r15d _litmus_P1_21_: cmpl $0,%r15d _litmus_P1_22_: je LitLock09 _litmus_P1_23_: jmp LitLock10 _litmus_P1_24_: LitLock11: _litmus_P1_25_: movl (%r14),%eax _litmus_P1_26_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%r12) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r12),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r14) _litmus_P0_12_: movl $0,(%r12) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r15d _litmus_P0_15_: xchgl %r15d,(%rdx) _litmus_P0_16_: cmpl $0,%r15d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdx),%r15d _litmus_P0_20_: cmpl $0,%r15d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r13),%eax _litmus_P0_25_: movl $0,(%rdx) Test X003-L Required Histogram (7 states) 12151849:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 14083363:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 108594718:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2721688:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 124515894:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 83244392:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 154688096:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 81.93 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r12) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r12),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%r14) _litmus_P3_12_: movl $0,(%r12) _litmus_P3_13_: movl (%r14),%ebp _litmus_P3_14_: LitLock21: _litmus_P3_15_: movl $1,%r15d _litmus_P3_16_: xchgl %r15d,(%r11) _litmus_P3_17_: cmpl $0,%r15d _litmus_P3_18_: je LitLock23 _litmus_P3_19_: LitLock22: _litmus_P3_20_: movl (%r11),%r15d _litmus_P3_21_: cmpl $0,%r15d _litmus_P3_22_: je LitLock21 _litmus_P3_23_: jmp LitLock22 _litmus_P3_24_: LitLock23: _litmus_P3_25_: movl (%r13),%ebx _litmus_P3_26_: movl $0,(%r11) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r15d _litmus_P2_2_: xchgl %r15d,(%r11) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r11),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r13) _litmus_P2_12_: movl $0,(%r11) _litmus_P2_13_: movl (%r13),%ebp _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r15d _litmus_P2_16_: xchgl %r15d,(%r12) _litmus_P2_17_: cmpl $0,%r15d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r12),%r15d _litmus_P2_21_: cmpl $0,%r15d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%r14),%ebx _litmus_P2_26_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r14d _litmus_P1_2_: xchgl %r14d,(%r9) _litmus_P1_3_: cmpl $0,%r14d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r9),%r14d _litmus_P1_7_: cmpl $0,%r14d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r11) _litmus_P1_12_: movl $0,(%r9) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r14d _litmus_P1_15_: xchgl %r14d,(%r10) _litmus_P1_16_: cmpl $0,%r14d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r10),%r14d _litmus_P1_20_: cmpl $0,%r14d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r12),%eax _litmus_P1_25_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%r9) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r9),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r11) _litmus_P0_12_: movl $0,(%r9) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%r10) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r10),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r12),%eax _litmus_P0_25_: movl $0,(%r10) Test X004-L Required Histogram (15 states) 7311 :>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 34963 :>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 7154546:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; 20079 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 6252710:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 5522279:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 65604927:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; 3447 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 1300898:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 5688339:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 69746253:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; 1278747:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 44685005:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 37602375:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; 155098121:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 400000000, 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 66.20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r12) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r12),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%r14) _litmus_P3_12_: movl $0,(%r12) _litmus_P3_13_: movl (%r14),%ebp _litmus_P3_14_: LitLock21: _litmus_P3_15_: movl $1,%r15d _litmus_P3_16_: xchgl %r15d,(%r11) _litmus_P3_17_: cmpl $0,%r15d _litmus_P3_18_: je LitLock23 _litmus_P3_19_: LitLock22: _litmus_P3_20_: movl (%r11),%r15d _litmus_P3_21_: cmpl $0,%r15d _litmus_P3_22_: je LitLock21 _litmus_P3_23_: jmp LitLock22 _litmus_P3_24_: LitLock23: _litmus_P3_25_: movl (%r13),%ebx _litmus_P3_26_: movl $0,(%r11) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r15d _litmus_P2_2_: xchgl %r15d,(%r11) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r11),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r13) _litmus_P2_12_: movl $0,(%r11) _litmus_P2_13_: movl (%r13),%ebp _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r15d _litmus_P2_16_: xchgl %r15d,(%r12) _litmus_P2_17_: cmpl $0,%r15d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r12),%r15d _litmus_P2_21_: cmpl $0,%r15d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%r14),%ebx _litmus_P2_26_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%r10) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r12) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r11) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r11),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r13),%eax _litmus_P1_25_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X005-L Required Histogram (15 states) 7058 :>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 7796904:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; 6478320:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 65636926:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; 1792664:>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 72796733:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; 33662968:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 153722492:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; 95492 :>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; 11481 :>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 7867280:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; 2613 :>1:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 6218771:>1:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; 708524:>1:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; 43201774:>1:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 400000000, 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 72.20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_2_: xchgl %r15d,(%rbp) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock17 _litmus_P2_5_: LitLock16: _litmus_P2_6_: movl (%rbp),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock15 _litmus_P2_9_: jmp LitLock16 _litmus_P2_10_: LitLock17: _litmus_P2_11_: movl $1,(%r13) _litmus_P2_12_: movl $0,(%rbp) _litmus_P2_13_: movl (%r13),%edx _litmus_P2_14_: LitLock18: _litmus_P2_15_: movl $1,%r15d _litmus_P2_16_: xchgl %r15d,(%r12) _litmus_P2_17_: cmpl $0,%r15d _litmus_P2_18_: je LitLock20 _litmus_P2_19_: LitLock19: _litmus_P2_20_: movl (%r12),%r15d _litmus_P2_21_: cmpl $0,%r15d _litmus_P2_22_: je LitLock18 _litmus_P2_23_: jmp LitLock19 _litmus_P2_24_: LitLock20: _litmus_P2_25_: movl (%r14),%eax _litmus_P2_26_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%rbp) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rbp),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r13) _litmus_P1_12_: movl $0,(%rbp) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%rbp) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rbp),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r13),%edx _litmus_P1_25_: movl $0,(%rbp) _litmus_P1_26_: LitLock12: _litmus_P1_27_: movl $1,%r15d _litmus_P1_28_: xchgl %r15d,(%r12) _litmus_P1_29_: cmpl $0,%r15d _litmus_P1_30_: je LitLock14 _litmus_P1_31_: LitLock13: _litmus_P1_32_: movl (%r12),%r15d _litmus_P1_33_: cmpl $0,%r15d _litmus_P1_34_: je LitLock12 _litmus_P1_35_: jmp LitLock13 _litmus_P1_36_: LitLock14: _litmus_P1_37_: movl (%r14),%eax _litmus_P1_38_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%rdx) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdx),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r13) _litmus_P0_12_: movl $0,(%rdx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%rax) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rax),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r12) _litmus_P0_25_: movl $0,(%rax) Test X006-L Required Histogram (10 states) 12306444:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 7021669:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 97979430:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 1354845:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 111429217:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 17932617:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 144668954:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 18015770:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 1753511:>1:EAX=2; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 87537543:>1:EAX=2; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 500000000, 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 89.24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r12) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock23 _litmus_P3_5_: LitLock22: _litmus_P3_6_: movl (%r12),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock21 _litmus_P3_9_: jmp LitLock22 _litmus_P3_10_: LitLock23: _litmus_P3_11_: movl $1,(%r14) _litmus_P3_12_: movl $0,(%r12) _litmus_P3_13_: movl (%r14),%ebp _litmus_P3_14_: LitLock24: _litmus_P3_15_: movl $1,%r15d _litmus_P3_16_: xchgl %r15d,(%r11) _litmus_P3_17_: cmpl $0,%r15d _litmus_P3_18_: je LitLock26 _litmus_P3_19_: LitLock25: _litmus_P3_20_: movl (%r11),%r15d _litmus_P3_21_: cmpl $0,%r15d _litmus_P3_22_: je LitLock24 _litmus_P3_23_: jmp LitLock25 _litmus_P3_24_: LitLock26: _litmus_P3_25_: movl (%r13),%ebx _litmus_P3_26_: movl $0,(%r11) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r15d _litmus_P2_2_: xchgl %r15d,(%r11) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r11),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r13) _litmus_P2_12_: movl $0,(%r11) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%r11) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r11),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r13),%ebp _litmus_P2_25_: movl $0,(%r11) _litmus_P2_26_: LitLock18: _litmus_P2_27_: movl $1,%r15d _litmus_P2_28_: xchgl %r15d,(%r12) _litmus_P2_29_: cmpl $0,%r15d _litmus_P2_30_: je LitLock20 _litmus_P2_31_: LitLock19: _litmus_P2_32_: movl (%r12),%r15d _litmus_P2_33_: cmpl $0,%r15d _litmus_P2_34_: je LitLock18 _litmus_P2_35_: jmp LitLock19 _litmus_P2_36_: LitLock20: _litmus_P2_37_: movl (%r14),%ebx _litmus_P2_38_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r13d _litmus_P1_2_: xchgl %r13d,(%rax) _litmus_P1_3_: cmpl $0,%r13d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r13d _litmus_P1_7_: cmpl $0,%r13d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r10) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r13d _litmus_P1_15_: xchgl %r13d,(%r9) _litmus_P1_16_: cmpl $0,%r13d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r9),%r13d _litmus_P1_20_: cmpl $0,%r13d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r11) _litmus_P1_25_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%r10) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r10),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r12) _litmus_P0_12_: movl $0,(%r10) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r15d _litmus_P0_15_: xchgl %r15d,(%r11) _litmus_P0_16_: cmpl $0,%r15d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r11),%r15d _litmus_P0_20_: cmpl $0,%r15d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r13),%eax _litmus_P0_25_: movl $0,(%r11) Test X007-L Required Histogram (22 states) 2361 :>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 18468 :>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 6445323:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=1; 190409:>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 4473747:>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 5991723:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 60190830:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=1; 2286 :>0:EAX=0; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 888333:>0:EAX=1; 2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 5377028:>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 56279461:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=1; 2819311:>0:EAX=0; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 23449754:>0:EAX=1; 2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 36679606:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 133822903:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=1; 3385 :>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; y=2; 57920 :>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 6523999:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; y=2; 4513 :>0:EAX=0; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 748208:>0:EAX=1; 2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; y=2; 2560999:>0:EAX=0; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; 53469433:>0:EAX=1; 2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 400000000, 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 70.69 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r12) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock23 _litmus_P3_5_: LitLock22: _litmus_P3_6_: movl (%r12),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock21 _litmus_P3_9_: jmp LitLock22 _litmus_P3_10_: LitLock23: _litmus_P3_11_: movl $1,(%r14) _litmus_P3_12_: movl $0,(%r12) _litmus_P3_13_: movl (%r14),%ebp _litmus_P3_14_: LitLock24: _litmus_P3_15_: movl $1,%r15d _litmus_P3_16_: xchgl %r15d,(%r11) _litmus_P3_17_: cmpl $0,%r15d _litmus_P3_18_: je LitLock26 _litmus_P3_19_: LitLock25: _litmus_P3_20_: movl (%r11),%r15d _litmus_P3_21_: cmpl $0,%r15d _litmus_P3_22_: je LitLock24 _litmus_P3_23_: jmp LitLock25 _litmus_P3_24_: LitLock26: _litmus_P3_25_: movl (%r13),%ebx _litmus_P3_26_: movl $0,(%r11) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r15d _litmus_P2_2_: xchgl %r15d,(%r11) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r11),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r13) _litmus_P2_12_: movl $0,(%r11) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%r11) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r11),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r13),%ebp _litmus_P2_25_: movl $0,(%r11) _litmus_P2_26_: LitLock18: _litmus_P2_27_: movl $1,%r15d _litmus_P2_28_: xchgl %r15d,(%r12) _litmus_P2_29_: cmpl $0,%r15d _litmus_P2_30_: je LitLock20 _litmus_P2_31_: LitLock19: _litmus_P2_32_: movl (%r12),%r15d _litmus_P2_33_: cmpl $0,%r15d _litmus_P2_34_: je LitLock18 _litmus_P2_35_: jmp LitLock19 _litmus_P2_36_: LitLock20: _litmus_P2_37_: movl (%r14),%ebx _litmus_P2_38_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r13d _litmus_P1_2_: xchgl %r13d,(%rax) _litmus_P1_3_: cmpl $0,%r13d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r13d _litmus_P1_7_: cmpl $0,%r13d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r10) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r13d _litmus_P1_15_: xchgl %r13d,(%r9) _litmus_P1_16_: cmpl $0,%r13d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r9),%r13d _litmus_P1_20_: cmpl $0,%r13d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r11) _litmus_P1_25_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X008-L Required Histogram (22 states) 2596 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 7087261:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 4734324:>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 62996971:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 942773:>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 59933602:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 19860720:>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 138761413:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 45676 :>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 62072 :>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 7445150:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 766 :>2:EAX=1; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 6244413:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 1280474:>2:EAX=1; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 39983165:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 2573 :>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 7669774:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 766900:>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 41030523:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 26925 :>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 3255 :>2:EAX=2; 2:EBX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 1118674:>2:EAX=2; 2:EBX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 400000000, 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 77.04 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P1_2_: xchgl %r15d,(%r11) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r11),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r13) _litmus_P1_12_: movl $0,(%r11) _litmus_P1_13_: movl (%r13),%ebp _litmus_P1_14_: LitLock09: _litmus_P1_15_: movl $1,%r15d _litmus_P1_16_: xchgl %r15d,(%r12) _litmus_P1_17_: cmpl $0,%r15d _litmus_P1_18_: je LitLock11 _litmus_P1_19_: LitLock10: _litmus_P1_20_: movl (%r12),%r15d _litmus_P1_21_: cmpl $0,%r15d _litmus_P1_22_: je LitLock09 _litmus_P1_23_: jmp LitLock10 _litmus_P1_24_: LitLock11: _litmus_P1_25_: movl (%r14),%ebx _litmus_P1_26_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%eax _litmus_P0_2_: xchgl %eax,(%rbx) _litmus_P0_3_: cmpl $0,%eax _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rbx),%eax _litmus_P0_7_: cmpl $0,%eax _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r13) _litmus_P0_12_: movl $0,(%rbx) _litmus_P0_13_: movl $1,(%rbp) _litmus_P0_14_: movl (%rbp),%r14d _litmus_P0_15_: LitLock03: _litmus_P0_16_: movl $1,%eax _litmus_P0_17_: xchgl %eax,(%rcx) _litmus_P0_18_: cmpl $0,%eax _litmus_P0_19_: je LitLock05 _litmus_P0_20_: LitLock04: _litmus_P0_21_: movl (%rcx),%eax _litmus_P0_22_: cmpl $0,%eax _litmus_P0_23_: je LitLock03 _litmus_P0_24_: jmp LitLock04 _litmus_P0_25_: LitLock05: _litmus_P0_26_: movl (%r12),%r15d _litmus_P0_27_: movl $0,(%rcx) Test X009-L Required Histogram (3 states) 82132613:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 22301351:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 695566036:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 800000000, 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 43.80 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_2_: xchgl %r15d,(%r12) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r12),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r14) _litmus_P2_12_: movl $0,(%r12) _litmus_P2_13_: movl (%r14),%edx _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r15d _litmus_P2_16_: xchgl %r15d,(%rbp) _litmus_P2_17_: cmpl $0,%r15d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%rbp),%r15d _litmus_P2_21_: cmpl $0,%r15d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%r13),%eax _litmus_P2_26_: movl $0,(%rbp) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%r12) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r12),%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,(%r14) _litmus_P1_12_: movl $0,(%r12) _litmus_P1_13_: movl $1,(%r15) _litmus_P1_14_: movl (%r15),%edx _litmus_P1_15_: LitLock09: _litmus_P1_16_: movl $1,%edi _litmus_P1_17_: xchgl %edi,(%r13) _litmus_P1_18_: cmpl $0,%edi _litmus_P1_19_: je LitLock11 _litmus_P1_20_: LitLock10: _litmus_P1_21_: movl (%r13),%edi _litmus_P1_22_: cmpl $0,%edi _litmus_P1_23_: je LitLock09 _litmus_P1_24_: jmp LitLock10 _litmus_P1_25_: LitLock11: _litmus_P1_26_: movl (%rax),%ecx _litmus_P1_27_: movl $0,(%r13) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%rdx) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdx),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r13) _litmus_P0_12_: movl $0,(%rdx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r15d _litmus_P0_15_: xchgl %r15d,(%r12) _litmus_P0_16_: cmpl $0,%r15d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r12),%r15d _litmus_P0_20_: cmpl $0,%r15d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r14),%eax _litmus_P0_25_: movl $0,(%r12) Test X010-L Required Histogram (7 states) 2515955:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 12432356:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 129643887:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2580252:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 67906230:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 79000772:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 205920548:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 88.20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_2_: xchgl %r15d,(%r12) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r12),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r14) _litmus_P2_12_: movl $0,(%r12) _litmus_P2_13_: movl (%r14),%edx _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r15d _litmus_P2_16_: xchgl %r15d,(%rbp) _litmus_P2_17_: cmpl $0,%r15d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%rbp),%r15d _litmus_P2_21_: cmpl $0,%r15d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%r13),%eax _litmus_P2_26_: movl $0,(%rbp) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%r12) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r12),%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,(%r14) _litmus_P1_12_: movl $0,(%r12) _litmus_P1_13_: movl $1,(%r15) _litmus_P1_14_: movl (%r15),%edx _litmus_P1_15_: LitLock09: _litmus_P1_16_: movl $1,%edi _litmus_P1_17_: xchgl %edi,(%r13) _litmus_P1_18_: cmpl $0,%edi _litmus_P1_19_: je LitLock11 _litmus_P1_20_: LitLock10: _litmus_P1_21_: movl (%r13),%edi _litmus_P1_22_: cmpl $0,%edi _litmus_P1_23_: je LitLock09 _litmus_P1_24_: jmp LitLock10 _litmus_P1_25_: LitLock11: _litmus_P1_26_: movl (%rax),%ecx _litmus_P1_27_: movl $0,(%r13) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%rax) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r12) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%rdx) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdx),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r13) _litmus_P0_25_: movl $0,(%rdx) Test X011-L Required Histogram (7 states) 2710858:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 123568070:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 61928330:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 207677050:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 17904058:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 1530351:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 84681283:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 500000000, 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 97.33 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P1_2_: xchgl %r15d,(%r11) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r11),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r13) _litmus_P1_12_: movl $0,(%r11) _litmus_P1_13_: movl (%r13),%ebp _litmus_P1_14_: LitLock09: _litmus_P1_15_: movl $1,%r15d _litmus_P1_16_: xchgl %r15d,(%r12) _litmus_P1_17_: cmpl $0,%r15d _litmus_P1_18_: je LitLock11 _litmus_P1_19_: LitLock10: _litmus_P1_20_: movl (%r12),%r15d _litmus_P1_21_: cmpl $0,%r15d _litmus_P1_22_: je LitLock09 _litmus_P1_23_: jmp LitLock10 _litmus_P1_24_: LitLock11: _litmus_P1_25_: movl (%r14),%ebx _litmus_P1_26_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%r10) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r10),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r12) _litmus_P0_12_: movl $0,(%r10) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%r9) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r11),%eax _litmus_P0_25_: movl $0,(%r9) Test X012-L Required Histogram (3 states) 85369491:>0:EAX=1; 1:EAX=1; 1:EBX=0; 39131829:>0:EAX=0; 1:EAX=1; 1:EBX=1; 675498680:>0:EAX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 800000000, 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 37.83 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r12) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r12),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%r14) _litmus_P3_12_: movl $0,(%r12) _litmus_P3_13_: movl (%r14),%ebp _litmus_P3_14_: LitLock21: _litmus_P3_15_: movl $1,%r15d _litmus_P3_16_: xchgl %r15d,(%r11) _litmus_P3_17_: cmpl $0,%r15d _litmus_P3_18_: je LitLock23 _litmus_P3_19_: LitLock22: _litmus_P3_20_: movl (%r11),%r15d _litmus_P3_21_: cmpl $0,%r15d _litmus_P3_22_: je LitLock21 _litmus_P3_23_: jmp LitLock22 _litmus_P3_24_: LitLock23: _litmus_P3_25_: movl (%r13),%ebx _litmus_P3_26_: movl $0,(%r11) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r14d _litmus_P2_2_: xchgl %r14d,(%r9) _litmus_P2_3_: cmpl $0,%r14d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r9),%r14d _litmus_P2_7_: cmpl $0,%r14d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r11) _litmus_P2_12_: movl $0,(%r9) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r14d _litmus_P2_15_: xchgl %r14d,(%r10) _litmus_P2_16_: cmpl $0,%r14d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r10),%r14d _litmus_P2_20_: cmpl $0,%r14d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r12),%eax _litmus_P2_25_: movl $0,(%r10) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%r11) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r11),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r13) _litmus_P1_12_: movl $0,(%r11) _litmus_P1_13_: movl (%r13),%ebp _litmus_P1_14_: LitLock09: _litmus_P1_15_: movl $1,%r15d _litmus_P1_16_: xchgl %r15d,(%r12) _litmus_P1_17_: cmpl $0,%r15d _litmus_P1_18_: je LitLock11 _litmus_P1_19_: LitLock10: _litmus_P1_20_: movl (%r12),%r15d _litmus_P1_21_: cmpl $0,%r15d _litmus_P1_22_: je LitLock09 _litmus_P1_23_: jmp LitLock10 _litmus_P1_24_: LitLock11: _litmus_P1_25_: movl (%r14),%ebx _litmus_P1_26_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%r9) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r9),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r11) _litmus_P0_12_: movl $0,(%r9) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%r10) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r10),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r12),%eax _litmus_P0_25_: movl $0,(%r10) Test X013-L Required Histogram (15 states) 29279 :>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 5514 :>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 1556611:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 31729 :>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 9857736:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 6957751:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 66234246:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 6237 :>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 6980152:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 3782868:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 44542622:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1497409:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 65251564:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 44590329:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 148675953:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 400000000, 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 67.10 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r12) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock23 _litmus_P3_5_: LitLock22: _litmus_P3_6_: movl (%r12),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock21 _litmus_P3_9_: jmp LitLock22 _litmus_P3_10_: LitLock23: _litmus_P3_11_: movl $1,(%r14) _litmus_P3_12_: movl $0,(%r12) _litmus_P3_13_: movl (%r14),%ebp _litmus_P3_14_: LitLock24: _litmus_P3_15_: movl $1,%r15d _litmus_P3_16_: xchgl %r15d,(%r11) _litmus_P3_17_: cmpl $0,%r15d _litmus_P3_18_: je LitLock26 _litmus_P3_19_: LitLock25: _litmus_P3_20_: movl (%r11),%r15d _litmus_P3_21_: cmpl $0,%r15d _litmus_P3_22_: je LitLock24 _litmus_P3_23_: jmp LitLock25 _litmus_P3_24_: LitLock26: _litmus_P3_25_: movl (%r13),%ebx _litmus_P3_26_: movl $0,(%r11) _litmus_P2_0_: LitLock15: _litmus_P2_1_: movl $1,%r15d _litmus_P2_2_: xchgl %r15d,(%r10) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock17 _litmus_P2_5_: LitLock16: _litmus_P2_6_: movl (%r10),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock15 _litmus_P2_9_: jmp LitLock16 _litmus_P2_10_: LitLock17: _litmus_P2_11_: movl $1,(%r12) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: LitLock18: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%r11) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock20 _litmus_P2_18_: LitLock19: _litmus_P2_19_: movl (%r11),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock18 _litmus_P2_22_: jmp LitLock19 _litmus_P2_23_: LitLock20: _litmus_P2_24_: movl (%r13),%eax _litmus_P2_25_: movl $0,(%r11) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%r11) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r11),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r13) _litmus_P1_12_: movl $0,(%r11) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r11) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r11),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r13),%ebp _litmus_P1_25_: movl $0,(%r11) _litmus_P1_26_: LitLock12: _litmus_P1_27_: movl $1,%r15d _litmus_P1_28_: xchgl %r15d,(%r12) _litmus_P1_29_: cmpl $0,%r15d _litmus_P1_30_: je LitLock14 _litmus_P1_31_: LitLock13: _litmus_P1_32_: movl (%r12),%r15d _litmus_P1_33_: cmpl $0,%r15d _litmus_P1_34_: je LitLock12 _litmus_P1_35_: jmp LitLock13 _litmus_P1_36_: LitLock14: _litmus_P1_37_: movl (%r14),%ebx _litmus_P1_38_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X014-L Required Histogram (22 states) 18527 :>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 35505 :>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 1407542:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 10293 :>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 9516466:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 5997909:>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 63126032:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 2496 :>1:EAX=1; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 5570365:>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 2610986:>1:EAX=1; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 37451677:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 824406:>1:EAX=1; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 52266278:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 22203383:>1:EAX=1; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 137368887:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 15441 :>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 9312 :>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 8646683:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 2617 :>1:EAX=2; 1:EBX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 3782971:>1:EAX=2; 1:EBX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 721618:>1:EAX=2; 1:EBX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 48410606:>1:EAX=2; 1:EBX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 400000000, 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 70.94 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_2_: xchgl %r15d,(%r12) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r12),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r14) _litmus_P2_12_: movl $0,(%r12) _litmus_P2_13_: movl (%r14),%edx _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r15d _litmus_P2_16_: xchgl %r15d,(%rbp) _litmus_P2_17_: cmpl $0,%r15d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%rbp),%r15d _litmus_P2_21_: cmpl $0,%r15d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%r13),%eax _litmus_P2_26_: movl $0,(%rbp) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%rdx) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rdx),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r13) _litmus_P1_12_: movl $0,(%rdx) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r12) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r12),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r14),%eax _litmus_P1_25_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%r12) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r12),%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,(%r14) _litmus_P0_12_: movl $0,(%r12) _litmus_P0_13_: movl $1,(%r15) _litmus_P0_14_: movl (%r15),%edx _litmus_P0_15_: LitLock03: _litmus_P0_16_: movl $1,%edi _litmus_P0_17_: xchgl %edi,(%r13) _litmus_P0_18_: cmpl $0,%edi _litmus_P0_19_: je LitLock05 _litmus_P0_20_: LitLock04: _litmus_P0_21_: movl (%r13),%edi _litmus_P0_22_: cmpl $0,%edi _litmus_P0_23_: je LitLock03 _litmus_P0_24_: jmp LitLock04 _litmus_P0_25_: LitLock05: _litmus_P0_26_: movl (%rax),%ecx _litmus_P0_27_: movl $0,(%r13) Test X015-L Required Histogram (7 states) 2602072:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 6694775:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 133808589:>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 1735686:>0:EAX=1; 0:EBX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 93438594:>0:EAX=1; 0:EBX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 59306719:>0:EAX=1; 0:EBX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 202413565:>0:EAX=1; 0:EBX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 89.27 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_2_: xchgl %r15d,(%rbp) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rbp),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r13) _litmus_P2_12_: movl $0,(%rbp) _litmus_P2_13_: movl (%r13),%edx _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r15d _litmus_P2_16_: xchgl %r15d,(%r12) _litmus_P2_17_: cmpl $0,%r15d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r12),%r15d _litmus_P2_21_: cmpl $0,%r15d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%r14),%eax _litmus_P2_26_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%rdx) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rdx),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r13) _litmus_P1_12_: movl $0,(%rdx) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r12) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r12),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r14),%eax _litmus_P1_25_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%r12) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r12),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r14) _litmus_P0_12_: movl $0,(%r12) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r15d _litmus_P0_15_: xchgl %r15d,(%rdx) _litmus_P0_16_: cmpl $0,%r15d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdx),%r15d _litmus_P0_20_: cmpl $0,%r15d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r13),%eax _litmus_P0_25_: movl $0,(%rdx) Test X016-L Required Histogram (7 states) 2689098:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 12176822:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 121668778:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3122001:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 91839331:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 77660057:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 190843913:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 79.24 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r12) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r12),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%r14) _litmus_P3_12_: movl $0,(%r12) _litmus_P3_13_: movl (%r14),%ebp _litmus_P3_14_: LitLock21: _litmus_P3_15_: movl $1,%r15d _litmus_P3_16_: xchgl %r15d,(%r11) _litmus_P3_17_: cmpl $0,%r15d _litmus_P3_18_: je LitLock23 _litmus_P3_19_: LitLock22: _litmus_P3_20_: movl (%r11),%r15d _litmus_P3_21_: cmpl $0,%r15d _litmus_P3_22_: je LitLock21 _litmus_P3_23_: jmp LitLock22 _litmus_P3_24_: LitLock23: _litmus_P3_25_: movl (%r13),%ebx _litmus_P3_26_: movl $0,(%r11) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r14d _litmus_P2_2_: xchgl %r14d,(%r9) _litmus_P2_3_: cmpl $0,%r14d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r9),%r14d _litmus_P2_7_: cmpl $0,%r14d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r11) _litmus_P2_12_: movl $0,(%r9) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r14d _litmus_P2_15_: xchgl %r14d,(%r10) _litmus_P2_16_: cmpl $0,%r14d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r10),%r14d _litmus_P2_20_: cmpl $0,%r14d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r12),%eax _litmus_P2_25_: movl $0,(%r10) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r14d _litmus_P1_2_: xchgl %r14d,(%r9) _litmus_P1_3_: cmpl $0,%r14d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r9),%r14d _litmus_P1_7_: cmpl $0,%r14d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r11) _litmus_P1_12_: movl $0,(%r9) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r14d _litmus_P1_15_: xchgl %r14d,(%r10) _litmus_P1_16_: cmpl $0,%r14d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r10),%r14d _litmus_P1_20_: cmpl $0,%r14d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r12),%eax _litmus_P1_25_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%r9) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r9),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r11) _litmus_P0_12_: movl $0,(%r9) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%r10) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r10),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r12),%eax _litmus_P0_25_: movl $0,(%r10) Test X017-L Required Histogram (15 states) 6979 :>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 7561 :>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 1665639:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 32444 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 5520804:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 6509897:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 71796127:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 4557 :>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1461212:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 3107301:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 46646756:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1544753:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 45906700:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 40674982:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 175114288:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 400000000, 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 64.73 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r12) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r12),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%r14) _litmus_P3_12_: movl $0,(%r12) _litmus_P3_13_: movl (%r14),%ebp _litmus_P3_14_: LitLock21: _litmus_P3_15_: movl $1,%r15d _litmus_P3_16_: xchgl %r15d,(%r11) _litmus_P3_17_: cmpl $0,%r15d _litmus_P3_18_: je LitLock23 _litmus_P3_19_: LitLock22: _litmus_P3_20_: movl (%r11),%r15d _litmus_P3_21_: cmpl $0,%r15d _litmus_P3_22_: je LitLock21 _litmus_P3_23_: jmp LitLock22 _litmus_P3_24_: LitLock23: _litmus_P3_25_: movl (%r13),%ebx _litmus_P3_26_: movl $0,(%r11) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r15d _litmus_P2_2_: xchgl %r15d,(%r10) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r12) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%r11) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r11),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r13),%eax _litmus_P2_25_: movl $0,(%r11) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%r10) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r12) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r11) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r11),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r13),%eax _litmus_P1_25_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X018-L Required Histogram (15 states) 6106 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 1690427:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 6224807:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 71248761:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 1837747:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 51115728:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 31866591:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 177395967:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 19353 :>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 10666 :>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 8265352:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 1799 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 3648204:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 584343:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 46084149:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 400000000, 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 70.25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_2_: xchgl %r15d,(%rbp) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rbp),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r13) _litmus_P2_12_: movl $0,(%rbp) _litmus_P2_13_: movl (%r13),%edx _litmus_P2_14_: LitLock15: _litmus_P2_15_: movl $1,%r15d _litmus_P2_16_: xchgl %r15d,(%r12) _litmus_P2_17_: cmpl $0,%r15d _litmus_P2_18_: je LitLock17 _litmus_P2_19_: LitLock16: _litmus_P2_20_: movl (%r12),%r15d _litmus_P2_21_: cmpl $0,%r15d _litmus_P2_22_: je LitLock15 _litmus_P2_23_: jmp LitLock16 _litmus_P2_24_: LitLock17: _litmus_P2_25_: movl (%r14),%eax _litmus_P2_26_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%rdx) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rdx),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r13) _litmus_P1_12_: movl $0,(%rdx) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r12) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r12),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r14),%eax _litmus_P1_25_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%rdx) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdx),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r13) _litmus_P0_12_: movl $0,(%rdx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%rax) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rax),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r12) _litmus_P0_25_: movl $0,(%rax) Test X019-L Required Histogram (7 states) 3708933:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 125664296:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 79338771:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 192119901:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 16005605:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 1692566:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 81469928:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 500000000, 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 85.70 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r12) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r12),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%r14) _litmus_P3_12_: movl $0,(%r12) _litmus_P3_13_: movl (%r14),%ebp _litmus_P3_14_: LitLock21: _litmus_P3_15_: movl $1,%r15d _litmus_P3_16_: xchgl %r15d,(%r11) _litmus_P3_17_: cmpl $0,%r15d _litmus_P3_18_: je LitLock23 _litmus_P3_19_: LitLock22: _litmus_P3_20_: movl (%r11),%r15d _litmus_P3_21_: cmpl $0,%r15d _litmus_P3_22_: je LitLock21 _litmus_P3_23_: jmp LitLock22 _litmus_P3_24_: LitLock23: _litmus_P3_25_: movl (%r13),%ebx _litmus_P3_26_: movl $0,(%r11) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r15d _litmus_P2_2_: xchgl %r15d,(%r10) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r12) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%r11) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r11),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r13),%eax _litmus_P2_25_: movl $0,(%r11) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r13d _litmus_P1_2_: xchgl %r13d,(%rax) _litmus_P1_3_: cmpl $0,%r13d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r13d _litmus_P1_7_: cmpl $0,%r13d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r10) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r13d _litmus_P1_15_: xchgl %r13d,(%r9) _litmus_P1_16_: cmpl $0,%r13d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r9),%r13d _litmus_P1_20_: cmpl $0,%r13d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r11) _litmus_P1_25_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%r10) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r10),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r12) _litmus_P0_12_: movl $0,(%r10) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r15d _litmus_P0_15_: xchgl %r15d,(%r11) _litmus_P0_16_: cmpl $0,%r15d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r11),%r15d _litmus_P0_20_: cmpl $0,%r15d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r13),%eax _litmus_P0_25_: movl $0,(%r11) Test X020-L Required Histogram (15 states) 6972 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 1863132:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 7054905:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 71698217:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 3534440:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 35609805:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 43697724:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 179271345:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 2544 :>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 69806 :>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 6113899:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 2537 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 656778:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 2226183:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 48191713:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 400000000, 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 70.04 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r12) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r12),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%r14) _litmus_P3_12_: movl $0,(%r12) _litmus_P3_13_: movl (%r14),%ebp _litmus_P3_14_: LitLock21: _litmus_P3_15_: movl $1,%r15d _litmus_P3_16_: xchgl %r15d,(%r11) _litmus_P3_17_: cmpl $0,%r15d _litmus_P3_18_: je LitLock23 _litmus_P3_19_: LitLock22: _litmus_P3_20_: movl (%r11),%r15d _litmus_P3_21_: cmpl $0,%r15d _litmus_P3_22_: je LitLock21 _litmus_P3_23_: jmp LitLock22 _litmus_P3_24_: LitLock23: _litmus_P3_25_: movl (%r13),%ebx _litmus_P3_26_: movl $0,(%r11) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r15d _litmus_P2_2_: xchgl %r15d,(%r10) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r12) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%r11) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r11),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r13),%eax _litmus_P2_25_: movl $0,(%r11) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r13d _litmus_P1_2_: xchgl %r13d,(%rax) _litmus_P1_3_: cmpl $0,%r13d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r13d _litmus_P1_7_: cmpl $0,%r13d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r10) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r13d _litmus_P1_15_: xchgl %r13d,(%r9) _litmus_P1_16_: cmpl $0,%r13d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r9),%r13d _litmus_P1_20_: cmpl $0,%r13d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r11) _litmus_P1_25_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X021-L Required Histogram (15 states) 2091466:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 75596512:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 35403474:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 183327221:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 14419 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 8224211:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 4025327:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 43564861:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 2016 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 6512878:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 660620:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 39579747:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 27772 :>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 1535 :>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 967941:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 400000000, 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 76.19 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P1_2_: xchgl %r15d,(%r11) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r11),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r13) _litmus_P1_12_: movl $0,(%r11) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r11) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r11),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r13),%ebp _litmus_P1_25_: movl $0,(%r11) _litmus_P1_26_: LitLock12: _litmus_P1_27_: movl $1,%r15d _litmus_P1_28_: xchgl %r15d,(%r12) _litmus_P1_29_: cmpl $0,%r15d _litmus_P1_30_: je LitLock14 _litmus_P1_31_: LitLock13: _litmus_P1_32_: movl (%r12),%r15d _litmus_P1_33_: cmpl $0,%r15d _litmus_P1_34_: je LitLock12 _litmus_P1_35_: jmp LitLock13 _litmus_P1_36_: LitLock14: _litmus_P1_37_: movl (%r14),%ebx _litmus_P1_38_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%r9) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r9),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r11) _litmus_P0_12_: movl $0,(%r9) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%rax) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rax),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r10) _litmus_P0_25_: movl $0,(%rax) Test X022-L Required Histogram (4 states) 70768047:>1:EAX=2; 1:EBX=0; x=1; 110626085:>1:EAX=1; 1:EBX=1; x=1; 583206426:>1:EAX=2; 1:EBX=1; x=1; 35399442:>1:EAX=2; 1:EBX=1; x=2; Ok Witnesses Positive: 800000000, 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 41.14 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r12) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock23 _litmus_P3_5_: LitLock22: _litmus_P3_6_: movl (%r12),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock21 _litmus_P3_9_: jmp LitLock22 _litmus_P3_10_: LitLock23: _litmus_P3_11_: movl $2,(%r14) _litmus_P3_12_: movl $0,(%r12) _litmus_P3_13_: LitLock24: _litmus_P3_14_: movl $1,%r15d _litmus_P3_15_: xchgl %r15d,(%r12) _litmus_P3_16_: cmpl $0,%r15d _litmus_P3_17_: je LitLock26 _litmus_P3_18_: LitLock25: _litmus_P3_19_: movl (%r12),%r15d _litmus_P3_20_: cmpl $0,%r15d _litmus_P3_21_: je LitLock24 _litmus_P3_22_: jmp LitLock25 _litmus_P3_23_: LitLock26: _litmus_P3_24_: movl (%r14),%ebp _litmus_P3_25_: movl $0,(%r12) _litmus_P3_26_: LitLock27: _litmus_P3_27_: movl $1,%r15d _litmus_P3_28_: xchgl %r15d,(%r11) _litmus_P3_29_: cmpl $0,%r15d _litmus_P3_30_: je LitLock29 _litmus_P3_31_: LitLock28: _litmus_P3_32_: movl (%r11),%r15d _litmus_P3_33_: cmpl $0,%r15d _litmus_P3_34_: je LitLock27 _litmus_P3_35_: jmp LitLock28 _litmus_P3_36_: LitLock29: _litmus_P3_37_: movl (%r13),%ebx _litmus_P3_38_: movl $0,(%r11) _litmus_P2_0_: LitLock15: _litmus_P2_1_: movl $1,%r13d _litmus_P2_2_: xchgl %r13d,(%rax) _litmus_P2_3_: cmpl $0,%r13d _litmus_P2_4_: je LitLock17 _litmus_P2_5_: LitLock16: _litmus_P2_6_: movl (%rax),%r13d _litmus_P2_7_: cmpl $0,%r13d _litmus_P2_8_: je LitLock15 _litmus_P2_9_: jmp LitLock16 _litmus_P2_10_: LitLock17: _litmus_P2_11_: movl $1,(%r10) _litmus_P2_12_: movl $0,(%rax) _litmus_P2_13_: LitLock18: _litmus_P2_14_: movl $1,%r13d _litmus_P2_15_: xchgl %r13d,(%r9) _litmus_P2_16_: cmpl $0,%r13d _litmus_P2_17_: je LitLock20 _litmus_P2_18_: LitLock19: _litmus_P2_19_: movl (%r9),%r13d _litmus_P2_20_: cmpl $0,%r13d _litmus_P2_21_: je LitLock18 _litmus_P2_22_: jmp LitLock19 _litmus_P2_23_: LitLock20: _litmus_P2_24_: movl $1,(%r11) _litmus_P2_25_: movl $0,(%r9) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%r11) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r11),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r13) _litmus_P1_12_: movl $0,(%r11) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r11) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r11),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r13),%ebp _litmus_P1_25_: movl $0,(%r11) _litmus_P1_26_: LitLock12: _litmus_P1_27_: movl $1,%r15d _litmus_P1_28_: xchgl %r15d,(%r12) _litmus_P1_29_: cmpl $0,%r15d _litmus_P1_30_: je LitLock14 _litmus_P1_31_: LitLock13: _litmus_P1_32_: movl (%r12),%r15d _litmus_P1_33_: cmpl $0,%r15d _litmus_P1_34_: je LitLock12 _litmus_P1_35_: jmp LitLock13 _litmus_P1_36_: LitLock14: _litmus_P1_37_: movl (%r14),%ebx _litmus_P1_38_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X023-L Required Histogram (32 states) 7388 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 16535 :>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 681981:>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 6049 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 10602748:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 5399711:>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 49174542:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 16879 :>1:EAX=1; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 5449147:>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 3988570:>1:EAX=1; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 19596238:>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 633186:>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 47672439:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 19306922:>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 125446375:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 3611 :>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 4425 :>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 6547382:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 13584 :>1:EAX=2; 1:EBX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 3060675:>1:EAX=2; 1:EBX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 581934:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 43035978:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 4810 :>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 13536 :>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 651802:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 6659 :>1:EAX=1; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 6815415:>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 3282880:>1:EAX=1; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 42846168:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 5005 :>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 7369 :>1:EAX=2; 1:EBX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 5120057:>1:EAX=2; 1:EBX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 400000000, 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 78.27 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_2_: xchgl %r15d,(%r12) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r12),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r14) _litmus_P2_12_: movl $0,(%r12) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%r12) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r12),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r14),%edx _litmus_P2_25_: movl $0,(%r12) _litmus_P2_26_: LitLock18: _litmus_P2_27_: movl $1,%r15d _litmus_P2_28_: xchgl %r15d,(%rbp) _litmus_P2_29_: cmpl $0,%r15d _litmus_P2_30_: je LitLock20 _litmus_P2_31_: LitLock19: _litmus_P2_32_: movl (%rbp),%r15d _litmus_P2_33_: cmpl $0,%r15d _litmus_P2_34_: je LitLock18 _litmus_P2_35_: jmp LitLock19 _litmus_P2_36_: LitLock20: _litmus_P2_37_: movl (%r13),%eax _litmus_P2_38_: movl $0,(%rbp) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r14d _litmus_P1_2_: xchgl %r14d,(%rax) _litmus_P1_3_: cmpl $0,%r14d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r14d _litmus_P1_7_: cmpl $0,%r14d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r12) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r14d _litmus_P1_15_: xchgl %r14d,(%rdx) _litmus_P1_16_: cmpl $0,%r14d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdx),%r14d _litmus_P1_20_: cmpl $0,%r14d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r13) _litmus_P1_25_: movl $0,(%rdx) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%edi _litmus_P0_2_: xchgl %edi,(%r12) _litmus_P0_3_: cmpl $0,%edi _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r12),%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,(%r14) _litmus_P0_12_: movl $0,(%r12) _litmus_P0_13_: movl $1,(%r15) _litmus_P0_14_: movl (%r15),%edx _litmus_P0_15_: LitLock03: _litmus_P0_16_: movl $1,%edi _litmus_P0_17_: xchgl %edi,(%r13) _litmus_P0_18_: cmpl $0,%edi _litmus_P0_19_: je LitLock05 _litmus_P0_20_: LitLock04: _litmus_P0_21_: movl (%r13),%edi _litmus_P0_22_: cmpl $0,%edi _litmus_P0_23_: je LitLock03 _litmus_P0_24_: jmp LitLock04 _litmus_P0_25_: LitLock05: _litmus_P0_26_: movl (%rax),%ecx _litmus_P0_27_: movl $0,(%r13) Test X024-L Required Histogram (10 states) 1609833:>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=0; z=1; 8951972:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=0; z=1; 116476828:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=1; 1860538:>0:EAX=1; 0:EBX=0; 2:EAX=1; 2:EBX=1; z=1; 24952609:>0:EAX=1; 0:EBX=1; 2:EAX=1; 2:EBX=1; z=1; 56528374:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=1; 189575177:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=1; 2461607:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=0; z=2; 4335170:>0:EAX=1; 0:EBX=0; 2:EAX=2; 2:EBX=1; z=2; 93247892:>0:EAX=1; 0:EBX=1; 2:EAX=2; 2:EBX=1; z=2; Ok Witnesses Positive: 500000000, 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 95.34 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_2_: xchgl %r15d,(%rbp) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rbp),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r13) _litmus_P2_12_: movl $0,(%rbp) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%rbp) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rbp),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r13),%edx _litmus_P2_25_: movl $0,(%rbp) _litmus_P2_26_: LitLock18: _litmus_P2_27_: movl $1,%r15d _litmus_P2_28_: xchgl %r15d,(%r12) _litmus_P2_29_: cmpl $0,%r15d _litmus_P2_30_: je LitLock20 _litmus_P2_31_: LitLock19: _litmus_P2_32_: movl (%r12),%r15d _litmus_P2_33_: cmpl $0,%r15d _litmus_P2_34_: je LitLock18 _litmus_P2_35_: jmp LitLock19 _litmus_P2_36_: LitLock20: _litmus_P2_37_: movl (%r14),%eax _litmus_P2_38_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r14d _litmus_P1_2_: xchgl %r14d,(%rax) _litmus_P1_3_: cmpl $0,%r14d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r14d _litmus_P1_7_: cmpl $0,%r14d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r12) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r14d _litmus_P1_15_: xchgl %r14d,(%rdx) _litmus_P1_16_: cmpl $0,%r14d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdx),%r14d _litmus_P1_20_: cmpl $0,%r14d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r13) _litmus_P1_25_: movl $0,(%rdx) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%r12) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r12),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r14) _litmus_P0_12_: movl $0,(%r12) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r15d _litmus_P0_15_: xchgl %r15d,(%rdx) _litmus_P0_16_: cmpl $0,%r15d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdx),%r15d _litmus_P0_20_: cmpl $0,%r15d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r13),%eax _litmus_P0_25_: movl $0,(%rdx) Test X025-L Required Histogram (10 states) 1265292:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 13183326:>0:EAX=0; 2:EAX=2; 2:EBX=0; y=1; 105862083:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=1; 3365936:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 22911394:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 73122575:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=1; 175083220:>0:EAX=1; 2:EAX=2; 2:EBX=1; y=1; 1859317:>0:EAX=1; 2:EAX=2; 2:EBX=0; y=2; 6556722:>0:EAX=0; 2:EAX=2; 2:EBX=1; y=2; 96790135:>0:EAX=1; 2:EAX=2; 2:EBX=1; y=2; Ok Witnesses Positive: 500000000, 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 85.95 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r12) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r12),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%r14) _litmus_P3_12_: movl $0,(%r12) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r15d _litmus_P3_15_: xchgl %r15d,(%r12) _litmus_P3_16_: cmpl $0,%r15d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r12),%r15d _litmus_P3_20_: cmpl $0,%r15d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%r14),%ebp _litmus_P3_25_: movl $0,(%r12) _litmus_P3_26_: LitLock24: _litmus_P3_27_: movl $1,%r15d _litmus_P3_28_: xchgl %r15d,(%r11) _litmus_P3_29_: cmpl $0,%r15d _litmus_P3_30_: je LitLock26 _litmus_P3_31_: LitLock25: _litmus_P3_32_: movl (%r11),%r15d _litmus_P3_33_: cmpl $0,%r15d _litmus_P3_34_: je LitLock24 _litmus_P3_35_: jmp LitLock25 _litmus_P3_36_: LitLock26: _litmus_P3_37_: movl (%r13),%ebx _litmus_P3_38_: movl $0,(%r11) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r13d _litmus_P2_2_: xchgl %r13d,(%rax) _litmus_P2_3_: cmpl $0,%r13d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rax),%r13d _litmus_P2_7_: cmpl $0,%r13d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r10) _litmus_P2_12_: movl $0,(%rax) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r13d _litmus_P2_15_: xchgl %r13d,(%r9) _litmus_P2_16_: cmpl $0,%r13d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r9),%r13d _litmus_P2_20_: cmpl $0,%r13d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%r11) _litmus_P2_25_: movl $0,(%r9) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%r10) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r12) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r11) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r11),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r13),%eax _litmus_P1_25_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%r10) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r10),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r12) _litmus_P0_12_: movl $0,(%r10) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r15d _litmus_P0_15_: xchgl %r15d,(%r11) _litmus_P0_16_: cmpl $0,%r15d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r11),%r15d _litmus_P0_20_: cmpl $0,%r15d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r13),%eax _litmus_P0_25_: movl $0,(%r11) Test X026-L Required Histogram (22 states) 3954 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 2841 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 881372:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 15458 :>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 5930389:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=1; 5179646:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 57272440:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=1; 30829 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 2982082:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 2607491:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 25911495:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 1394866:>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 42693043:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=1; 38524652:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 154839121:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=1; 2638 :>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=0; z=2; 3312 :>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 841371:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=0; z=2; 14166 :>0:EAX=0; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 2515048:>0:EAX=1; 1:EAX=0; 3:EAX=2; 3:EBX=1; z=2; 3889426:>0:EAX=0; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; 54464360:>0:EAX=1; 1:EAX=1; 3:EAX=2; 3:EBX=1; z=2; Ok Witnesses Positive: 400000000, 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 71.94 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r12) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r12),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%r14) _litmus_P3_12_: movl $0,(%r12) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r15d _litmus_P3_15_: xchgl %r15d,(%r12) _litmus_P3_16_: cmpl $0,%r15d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r12),%r15d _litmus_P3_20_: cmpl $0,%r15d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%r14),%ebp _litmus_P3_25_: movl $0,(%r12) _litmus_P3_26_: LitLock24: _litmus_P3_27_: movl $1,%r15d _litmus_P3_28_: xchgl %r15d,(%r11) _litmus_P3_29_: cmpl $0,%r15d _litmus_P3_30_: je LitLock26 _litmus_P3_31_: LitLock25: _litmus_P3_32_: movl (%r11),%r15d _litmus_P3_33_: cmpl $0,%r15d _litmus_P3_34_: je LitLock24 _litmus_P3_35_: jmp LitLock25 _litmus_P3_36_: LitLock26: _litmus_P3_37_: movl (%r13),%ebx _litmus_P3_38_: movl $0,(%r11) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r13d _litmus_P2_2_: xchgl %r13d,(%rax) _litmus_P2_3_: cmpl $0,%r13d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rax),%r13d _litmus_P2_7_: cmpl $0,%r13d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r10) _litmus_P2_12_: movl $0,(%rax) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r13d _litmus_P2_15_: xchgl %r13d,(%r9) _litmus_P2_16_: cmpl $0,%r13d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r9),%r13d _litmus_P2_20_: cmpl $0,%r13d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%r11) _litmus_P2_25_: movl $0,(%r9) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%r10) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r12) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r11) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r11),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r13),%eax _litmus_P1_25_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X027-L Required Histogram (22 states) 2280 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 830058:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 7430091:>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=1; 59061791:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=1; 2610373:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 26141198:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 32641127:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=1; 160581424:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=1; 4883 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 6185 :>1:EAX=0; 3:EAX=2; 3:EBX=0; x=2; z=1; 5862148:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=1; 13617 :>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 2798748:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 579281:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=1; 40426761:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=1; 1914 :>1:EAX=0; 3:EAX=2; 3:EBX=0; x=1; z=2; 822831:>1:EAX=1; 3:EAX=2; 3:EBX=0; x=1; z=2; 2526405:>1:EAX=0; 3:EAX=2; 3:EBX=1; x=1; z=2; 53530798:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=1; z=2; 6889 :>1:EAX=1; 3:EAX=2; 3:EBX=0; x=2; z=2; 5701 :>1:EAX=0; 3:EAX=2; 3:EBX=1; x=2; z=2; 4115497:>1:EAX=1; 3:EAX=2; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 400000000, 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 78.28 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_2_: xchgl %r15d,(%rbp) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rbp),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r13) _litmus_P2_12_: movl $0,(%rbp) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%rbp) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%rbp),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r13),%edx _litmus_P2_25_: movl $0,(%rbp) _litmus_P2_26_: LitLock18: _litmus_P2_27_: movl $1,%r15d _litmus_P2_28_: xchgl %r15d,(%r12) _litmus_P2_29_: cmpl $0,%r15d _litmus_P2_30_: je LitLock20 _litmus_P2_31_: LitLock19: _litmus_P2_32_: movl (%r12),%r15d _litmus_P2_33_: cmpl $0,%r15d _litmus_P2_34_: je LitLock18 _litmus_P2_35_: jmp LitLock19 _litmus_P2_36_: LitLock20: _litmus_P2_37_: movl (%r14),%eax _litmus_P2_38_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r14d _litmus_P1_2_: xchgl %r14d,(%rax) _litmus_P1_3_: cmpl $0,%r14d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r14d _litmus_P1_7_: cmpl $0,%r14d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r12) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r14d _litmus_P1_15_: xchgl %r14d,(%rdx) _litmus_P1_16_: cmpl $0,%r14d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdx),%r14d _litmus_P1_20_: cmpl $0,%r14d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r13) _litmus_P1_25_: movl $0,(%rdx) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%rdx) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdx),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r13) _litmus_P0_12_: movl $0,(%rdx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%rax) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rax),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r12) _litmus_P0_25_: movl $0,(%rax) Test X028-L Required Histogram (10 states) 1272401:>2:EAX=1; 2:EBX=0; x=1; y=1; 113515134:>2:EAX=2; 2:EBX=0; x=1; y=1; 18634368:>2:EAX=1; 2:EBX=1; x=1; y=1; 184152203:>2:EAX=2; 2:EBX=1; x=1; y=1; 16701806:>2:EAX=2; 2:EBX=0; x=2; y=1; 1514995:>2:EAX=1; 2:EBX=1; x=2; y=1; 76881520:>2:EAX=2; 2:EBX=1; x=2; y=1; 1949369:>2:EAX=2; 2:EBX=0; x=1; y=2; 82647708:>2:EAX=2; 2:EBX=1; x=1; y=2; 2730496:>2:EAX=2; 2:EBX=1; x=2; y=2; Ok Witnesses Positive: 500000000, 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 96.20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r12) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r12),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%r14) _litmus_P3_12_: movl $0,(%r12) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r15d _litmus_P3_15_: xchgl %r15d,(%r12) _litmus_P3_16_: cmpl $0,%r15d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r12),%r15d _litmus_P3_20_: cmpl $0,%r15d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%r14),%ebp _litmus_P3_25_: movl $0,(%r12) _litmus_P3_26_: LitLock24: _litmus_P3_27_: movl $1,%r15d _litmus_P3_28_: xchgl %r15d,(%r11) _litmus_P3_29_: cmpl $0,%r15d _litmus_P3_30_: je LitLock26 _litmus_P3_31_: LitLock25: _litmus_P3_32_: movl (%r11),%r15d _litmus_P3_33_: cmpl $0,%r15d _litmus_P3_34_: je LitLock24 _litmus_P3_35_: jmp LitLock25 _litmus_P3_36_: LitLock26: _litmus_P3_37_: movl (%r13),%ebx _litmus_P3_38_: movl $0,(%r11) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r13d _litmus_P2_2_: xchgl %r13d,(%rax) _litmus_P2_3_: cmpl $0,%r13d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rax),%r13d _litmus_P2_7_: cmpl $0,%r13d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r10) _litmus_P2_12_: movl $0,(%rax) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r13d _litmus_P2_15_: xchgl %r13d,(%r9) _litmus_P2_16_: cmpl $0,%r13d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r9),%r13d _litmus_P2_20_: cmpl $0,%r13d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%r11) _litmus_P2_25_: movl $0,(%r9) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r13d _litmus_P1_2_: xchgl %r13d,(%rax) _litmus_P1_3_: cmpl $0,%r13d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r13d _litmus_P1_7_: cmpl $0,%r13d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r10) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r13d _litmus_P1_15_: xchgl %r13d,(%r9) _litmus_P1_16_: cmpl $0,%r13d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r9),%r13d _litmus_P1_20_: cmpl $0,%r13d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r11) _litmus_P1_25_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%r10) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r10),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r12) _litmus_P0_12_: movl $0,(%r10) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r15d _litmus_P0_15_: xchgl %r15d,(%r11) _litmus_P0_16_: cmpl $0,%r15d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r11),%r15d _litmus_P0_20_: cmpl $0,%r15d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r13),%eax _litmus_P0_25_: movl $0,(%r11) Test X029-L Required Histogram (22 states) 2805 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 966826:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 5884472:>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=1; 60180905:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=1; 2570377:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 22517910:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 40032149:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=1; 161806742:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=1; 1212 :>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 35398 :>0:EAX=0; 3:EAX=2; 3:EBX=0; y=2; z=1; 6257047:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=1; 14605 :>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 1460126:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 1991670:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=1; 47308099:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=1; 2999 :>0:EAX=0; 3:EAX=2; 3:EBX=0; y=1; z=2; 864445:>0:EAX=1; 3:EAX=2; 3:EBX=0; y=1; z=2; 4187264:>0:EAX=0; 3:EAX=2; 3:EBX=1; y=1; z=2; 42749642:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=1; z=2; 1106 :>0:EAX=1; 3:EAX=2; 3:EBX=0; y=2; z=2; 9389 :>0:EAX=0; 3:EAX=2; 3:EBX=1; y=2; z=2; 1154812:>0:EAX=1; 3:EAX=2; 3:EBX=1; y=2; z=2; Ok Witnesses Positive: 400000000, 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 76.67 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r12) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r12),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%r14) _litmus_P3_12_: movl $0,(%r12) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r15d _litmus_P3_15_: xchgl %r15d,(%r12) _litmus_P3_16_: cmpl $0,%r15d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r12),%r15d _litmus_P3_20_: cmpl $0,%r15d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%r14),%ebp _litmus_P3_25_: movl $0,(%r12) _litmus_P3_26_: LitLock24: _litmus_P3_27_: movl $1,%r15d _litmus_P3_28_: xchgl %r15d,(%r11) _litmus_P3_29_: cmpl $0,%r15d _litmus_P3_30_: je LitLock26 _litmus_P3_31_: LitLock25: _litmus_P3_32_: movl (%r11),%r15d _litmus_P3_33_: cmpl $0,%r15d _litmus_P3_34_: je LitLock24 _litmus_P3_35_: jmp LitLock25 _litmus_P3_36_: LitLock26: _litmus_P3_37_: movl (%r13),%ebx _litmus_P3_38_: movl $0,(%r11) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r13d _litmus_P2_2_: xchgl %r13d,(%rax) _litmus_P2_3_: cmpl $0,%r13d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rax),%r13d _litmus_P2_7_: cmpl $0,%r13d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r10) _litmus_P2_12_: movl $0,(%rax) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r13d _litmus_P2_15_: xchgl %r13d,(%r9) _litmus_P2_16_: cmpl $0,%r13d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r9),%r13d _litmus_P2_20_: cmpl $0,%r13d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%r11) _litmus_P2_25_: movl $0,(%r9) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r13d _litmus_P1_2_: xchgl %r13d,(%rax) _litmus_P1_3_: cmpl $0,%r13d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r13d _litmus_P1_7_: cmpl $0,%r13d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r10) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r13d _litmus_P1_15_: xchgl %r13d,(%r9) _litmus_P1_16_: cmpl $0,%r13d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r9),%r13d _litmus_P1_20_: cmpl $0,%r13d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r11) _litmus_P1_25_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X030-L Required Histogram (22 states) 885633:>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 59119719:>3:EAX=2; 3:EBX=0; x=1; y=1; z=1; 22386186:>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 169590339:>3:EAX=2; 3:EBX=1; x=1; y=1; z=1; 4717 :>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 7117969:>3:EAX=2; 3:EBX=0; x=2; y=1; z=1; 2657014:>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 41949795:>3:EAX=2; 3:EBX=1; x=2; y=1; z=1; 965 :>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 7154970:>3:EAX=2; 3:EBX=0; x=1; y=2; z=1; 1427197:>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 36712450:>3:EAX=2; 3:EBX=1; x=1; y=2; z=1; 13436 :>3:EAX=2; 3:EBX=0; x=2; y=2; z=1; 7945 :>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 767846:>3:EAX=2; 3:EBX=1; x=2; y=2; z=1; 876227:>3:EAX=2; 3:EBX=0; x=1; y=1; z=2; 43623620:>3:EAX=2; 3:EBX=1; x=1; y=1; z=2; 5073 :>3:EAX=2; 3:EBX=0; x=2; y=1; z=2; 4400091:>3:EAX=2; 3:EBX=1; x=2; y=1; z=2; 813 :>3:EAX=2; 3:EBX=0; x=1; y=2; z=2; 1292807:>3:EAX=2; 3:EBX=1; x=1; y=2; z=2; 5188 :>3:EAX=2; 3:EBX=1; x=2; y=2; z=2; Ok Witnesses Positive: 400000000, 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 83.66 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%eax _litmus_P1_2_: xchgl %eax,(%rbx) _litmus_P1_3_: cmpl $0,%eax _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rbx),%eax _litmus_P1_7_: cmpl $0,%eax _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r12) _litmus_P1_12_: movl $0,(%rbx) _litmus_P1_13_: movl $1,(%r13) _litmus_P1_14_: movl (%r13),%r14d _litmus_P1_15_: LitLock09: _litmus_P1_16_: movl $1,%eax _litmus_P1_17_: xchgl %eax,(%rcx) _litmus_P1_18_: cmpl $0,%eax _litmus_P1_19_: je LitLock11 _litmus_P1_20_: LitLock10: _litmus_P1_21_: movl (%rcx),%eax _litmus_P1_22_: cmpl $0,%eax _litmus_P1_23_: je LitLock09 _litmus_P1_24_: jmp LitLock10 _litmus_P1_25_: LitLock11: _litmus_P1_26_: movl (%rbp),%r15d _litmus_P1_27_: movl $0,(%rcx) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%eax _litmus_P0_2_: xchgl %eax,(%rcx) _litmus_P0_3_: cmpl $0,%eax _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rcx),%eax _litmus_P0_7_: cmpl $0,%eax _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%rbp) _litmus_P0_12_: movl $0,(%rcx) _litmus_P0_13_: movl $1,(%r12) _litmus_P0_14_: movl (%r12),%r14d _litmus_P0_15_: LitLock03: _litmus_P0_16_: movl $1,%eax _litmus_P0_17_: xchgl %eax,(%rbx) _litmus_P0_18_: cmpl $0,%eax _litmus_P0_19_: je LitLock05 _litmus_P0_20_: LitLock04: _litmus_P0_21_: movl (%rbx),%eax _litmus_P0_22_: cmpl $0,%eax _litmus_P0_23_: je LitLock03 _litmus_P0_24_: jmp LitLock04 _litmus_P0_25_: LitLock05: _litmus_P0_26_: movl (%r13),%r15d _litmus_P0_27_: movl $0,(%rbx) Test X031-L Required Histogram (3 states) 29111059:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=0; 34185745:>0:EAX=1; 0:EBX=0; 1:EAX=1; 1:EBX=1; 736703196:>0:EAX=1; 0:EBX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 800000000, 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 55.51 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%edi _litmus_P2_2_: xchgl %edi,(%r13) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r13),%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,(%rax) _litmus_P2_12_: movl $0,(%r13) _litmus_P2_13_: movl $1,(%r14) _litmus_P2_14_: movl (%r14),%edx _litmus_P2_15_: LitLock15: _litmus_P2_16_: movl $1,%edi _litmus_P2_17_: xchgl %edi,(%r12) _litmus_P2_18_: cmpl $0,%edi _litmus_P2_19_: je LitLock17 _litmus_P2_20_: LitLock16: _litmus_P2_21_: movl (%r12),%edi _litmus_P2_22_: cmpl $0,%edi _litmus_P2_23_: je LitLock15 _litmus_P2_24_: jmp LitLock16 _litmus_P2_25_: LitLock17: _litmus_P2_26_: movl (%r15),%ecx _litmus_P2_27_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%r12) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r12),%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,(%r14) _litmus_P1_12_: movl $0,(%r12) _litmus_P1_13_: movl $1,(%r15) _litmus_P1_14_: movl (%r15),%edx _litmus_P1_15_: LitLock09: _litmus_P1_16_: movl $1,%edi _litmus_P1_17_: xchgl %edi,(%r13) _litmus_P1_18_: cmpl $0,%edi _litmus_P1_19_: je LitLock11 _litmus_P1_20_: LitLock10: _litmus_P1_21_: movl (%r13),%edi _litmus_P1_22_: cmpl $0,%edi _litmus_P1_23_: je LitLock09 _litmus_P1_24_: jmp LitLock10 _litmus_P1_25_: LitLock11: _litmus_P1_26_: movl (%rax),%ecx _litmus_P1_27_: movl $0,(%r13) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%rdx) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdx),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r13) _litmus_P0_12_: movl $0,(%rdx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r15d _litmus_P0_15_: xchgl %r15d,(%r12) _litmus_P0_16_: cmpl $0,%r15d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r12),%r15d _litmus_P0_20_: cmpl $0,%r15d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r14),%eax _litmus_P0_25_: movl $0,(%r12) Test X032-L Required Histogram (7 states) 1712707:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; 2317725:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 69185821:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; 2760292:>0:EAX=0; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 78489842:>0:EAX=1; 1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; 92593201:>0:EAX=0; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; 252940412:>0:EAX=1; 1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 99.76 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%edi _litmus_P2_2_: xchgl %edi,(%r13) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r13),%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,(%rax) _litmus_P2_12_: movl $0,(%r13) _litmus_P2_13_: movl $1,(%r14) _litmus_P2_14_: movl (%r14),%edx _litmus_P2_15_: LitLock15: _litmus_P2_16_: movl $1,%edi _litmus_P2_17_: xchgl %edi,(%r12) _litmus_P2_18_: cmpl $0,%edi _litmus_P2_19_: je LitLock17 _litmus_P2_20_: LitLock16: _litmus_P2_21_: movl (%r12),%edi _litmus_P2_22_: cmpl $0,%edi _litmus_P2_23_: je LitLock15 _litmus_P2_24_: jmp LitLock16 _litmus_P2_25_: LitLock17: _litmus_P2_26_: movl (%r15),%ecx _litmus_P2_27_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%edi _litmus_P1_2_: xchgl %edi,(%r12) _litmus_P1_3_: cmpl $0,%edi _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r12),%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,(%r14) _litmus_P1_12_: movl $0,(%r12) _litmus_P1_13_: movl $1,(%r15) _litmus_P1_14_: movl (%r15),%edx _litmus_P1_15_: LitLock09: _litmus_P1_16_: movl $1,%edi _litmus_P1_17_: xchgl %edi,(%r13) _litmus_P1_18_: cmpl $0,%edi _litmus_P1_19_: je LitLock11 _litmus_P1_20_: LitLock10: _litmus_P1_21_: movl (%r13),%edi _litmus_P1_22_: cmpl $0,%edi _litmus_P1_23_: je LitLock09 _litmus_P1_24_: jmp LitLock10 _litmus_P1_25_: LitLock11: _litmus_P1_26_: movl (%rax),%ecx _litmus_P1_27_: movl $0,(%r13) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%rax) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r12) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%rdx) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdx),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r13) _litmus_P0_25_: movl $0,(%rdx) Test X033-L Required Histogram (7 states) 2190154:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=0; x=1; 66491864:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=1; 65580595:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=1; 263733538:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=1; 4831308:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=0; x=2; 1663317:>1:EAX=1; 1:EBX=0; 2:EAX=1; 2:EBX=1; x=2; 95509224:>1:EAX=1; 1:EBX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 500000000, 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 99.55 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%eax _litmus_P1_2_: xchgl %eax,(%rcx) _litmus_P1_3_: cmpl $0,%eax _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rcx),%eax _litmus_P1_7_: cmpl $0,%eax _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%rbp) _litmus_P1_12_: movl $0,(%rcx) _litmus_P1_13_: movl $1,(%r12) _litmus_P1_14_: movl (%r12),%r14d _litmus_P1_15_: LitLock09: _litmus_P1_16_: movl $1,%eax _litmus_P1_17_: xchgl %eax,(%rbx) _litmus_P1_18_: cmpl $0,%eax _litmus_P1_19_: je LitLock11 _litmus_P1_20_: LitLock10: _litmus_P1_21_: movl (%rbx),%eax _litmus_P1_22_: cmpl $0,%eax _litmus_P1_23_: je LitLock09 _litmus_P1_24_: jmp LitLock10 _litmus_P1_25_: LitLock11: _litmus_P1_26_: movl (%r13),%r15d _litmus_P1_27_: movl $0,(%rbx) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%r10) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r10),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r12) _litmus_P0_12_: movl $0,(%r10) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%r9) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r11),%eax _litmus_P0_25_: movl $0,(%r9) Test X034-L Required Histogram (3 states) 25432338:>0:EAX=1; 1:EAX=1; 1:EBX=0; 40828188:>0:EAX=0; 1:EAX=1; 1:EBX=1; 733739474:>0:EAX=1; 1:EAX=1; 1:EBX=1; Ok Witnesses Positive: 800000000, 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 48.21 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%edi _litmus_P2_2_: xchgl %edi,(%r13) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r13),%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,(%r15) _litmus_P2_12_: movl $0,(%r13) _litmus_P2_13_: movl $1,(%rax) _litmus_P2_14_: movl (%rax),%edx _litmus_P2_15_: LitLock15: _litmus_P2_16_: movl $1,%edi _litmus_P2_17_: xchgl %edi,(%r12) _litmus_P2_18_: cmpl $0,%edi _litmus_P2_19_: je LitLock17 _litmus_P2_20_: LitLock16: _litmus_P2_21_: movl (%r12),%edi _litmus_P2_22_: cmpl $0,%edi _litmus_P2_23_: je LitLock15 _litmus_P2_24_: jmp LitLock16 _litmus_P2_25_: LitLock17: _litmus_P2_26_: movl (%r14),%ecx _litmus_P2_27_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%rdx) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rdx),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r13) _litmus_P1_12_: movl $0,(%rdx) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r12) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r12),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r14),%eax _litmus_P1_25_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%rdx) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdx),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r13) _litmus_P0_12_: movl $0,(%rdx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r15d _litmus_P0_15_: xchgl %r15d,(%r12) _litmus_P0_16_: cmpl $0,%r15d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r12),%r15d _litmus_P0_20_: cmpl $0,%r15d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r14),%eax _litmus_P0_25_: movl $0,(%r12) Test X035-L Required Histogram (7 states) 2633904:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=0; 2592420:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=0; 68485547:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=0; 3742404:>0:EAX=0; 1:EAX=0; 2:EAX=1; 2:EBX=1; 94046377:>0:EAX=1; 1:EAX=0; 2:EAX=1; 2:EBX=1; 89670754:>0:EAX=0; 1:EAX=1; 2:EAX=1; 2:EBX=1; 238828594:>0:EAX=1; 1:EAX=1; 2:EAX=1; 2:EBX=1; Ok Witnesses Positive: 500000000, 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 84.63 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%eax _litmus_P3_2_: xchgl %eax,(%rbx) _litmus_P3_3_: cmpl $0,%eax _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%rbx),%eax _litmus_P3_7_: cmpl $0,%eax _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%r13) _litmus_P3_12_: movl $0,(%rbx) _litmus_P3_13_: movl $1,(%rbp) _litmus_P3_14_: movl (%rbp),%r14d _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%eax _litmus_P3_17_: xchgl %eax,(%rcx) _litmus_P3_18_: cmpl $0,%eax _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%rcx),%eax _litmus_P3_22_: cmpl $0,%eax _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r12),%r15d _litmus_P3_27_: movl $0,(%rcx) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r14d _litmus_P2_2_: xchgl %r14d,(%r9) _litmus_P2_3_: cmpl $0,%r14d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r9),%r14d _litmus_P2_7_: cmpl $0,%r14d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r11) _litmus_P2_12_: movl $0,(%r9) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r14d _litmus_P2_15_: xchgl %r14d,(%r10) _litmus_P2_16_: cmpl $0,%r14d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r10),%r14d _litmus_P2_20_: cmpl $0,%r14d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r12),%eax _litmus_P2_25_: movl $0,(%r10) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r14d _litmus_P1_2_: xchgl %r14d,(%r9) _litmus_P1_3_: cmpl $0,%r14d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r9),%r14d _litmus_P1_7_: cmpl $0,%r14d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r11) _litmus_P1_12_: movl $0,(%r9) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r14d _litmus_P1_15_: xchgl %r14d,(%r10) _litmus_P1_16_: cmpl $0,%r14d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r10),%r14d _litmus_P1_20_: cmpl $0,%r14d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r12),%eax _litmus_P1_25_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%r9) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r9),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r11) _litmus_P0_12_: movl $0,(%r9) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%r10) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r10),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r12),%eax _litmus_P0_25_: movl $0,(%r10) Test X036-L Required Histogram (15 states) 4626 :>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; 3844 :>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 1058348:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; 3745 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 2456380:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; 996433:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 34052425:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; 18001 :>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1979813:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; 3801237:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 49768078:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; 1693023:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 48371231:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; 43914720:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; 211878096:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; Ok Witnesses Positive: 400000000, 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 71.42 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%ebp _litmus_P3_2_: xchgl %ebp,(%r13) _litmus_P3_3_: cmpl $0,%ebp _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r13),%ebp _litmus_P3_7_: cmpl $0,%ebp _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rax) _litmus_P3_12_: movl $0,(%r13) _litmus_P3_13_: movl $1,(%r14) _litmus_P3_14_: movl (%r14),%ecx _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%ebp _litmus_P3_17_: xchgl %ebp,(%r12) _litmus_P3_18_: cmpl $0,%ebp _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%r12),%ebp _litmus_P3_22_: cmpl $0,%ebp _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r15),%ebx _litmus_P3_27_: movl $0,(%r12) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r15d _litmus_P2_2_: xchgl %r15d,(%r10) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r12) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%r11) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r11),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r13),%eax _litmus_P2_25_: movl $0,(%r11) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%r10) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r12) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r11) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r11),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r13),%eax _litmus_P1_25_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X037-L Required Histogram (15 states) 4442 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 1052704:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; 2729709:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 34183565:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; 2173867:>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 53379922:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; 36278531:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 215833501:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; 8588 :>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; 1493 :>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 1466159:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; 10718 :>1:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 4217549:>1:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; 663480:>1:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; 47995772:>1:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; Ok Witnesses Positive: 400000000, 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 75.82 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%edi _litmus_P2_2_: xchgl %edi,(%r13) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r13),%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,(%r15) _litmus_P2_12_: movl $0,(%r13) _litmus_P2_13_: movl $1,(%rax) _litmus_P2_14_: movl (%rax),%edx _litmus_P2_15_: LitLock15: _litmus_P2_16_: movl $1,%edi _litmus_P2_17_: xchgl %edi,(%r12) _litmus_P2_18_: cmpl $0,%edi _litmus_P2_19_: je LitLock17 _litmus_P2_20_: LitLock16: _litmus_P2_21_: movl (%r12),%edi _litmus_P2_22_: cmpl $0,%edi _litmus_P2_23_: je LitLock15 _litmus_P2_24_: jmp LitLock16 _litmus_P2_25_: LitLock17: _litmus_P2_26_: movl (%r14),%ecx _litmus_P2_27_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%rdx) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rdx),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r13) _litmus_P1_12_: movl $0,(%rdx) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r12) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r12),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r14),%eax _litmus_P1_25_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%rax) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r12) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%rdx) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdx),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r13) _litmus_P0_25_: movl $0,(%rdx) Test X038-L Required Histogram (7 states) 2352378:>1:EAX=0; 2:EAX=1; 2:EBX=0; x=1; 66184294:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=1; 81799753:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=1; 250179182:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=1; 4119659:>1:EAX=1; 2:EAX=1; 2:EBX=0; x=2; 1986622:>1:EAX=0; 2:EAX=1; 2:EBX=1; x=2; 93378112:>1:EAX=1; 2:EAX=1; 2:EBX=1; x=2; Ok Witnesses Positive: 500000000, 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 96.43 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%ebp _litmus_P3_2_: xchgl %ebp,(%r13) _litmus_P3_3_: cmpl $0,%ebp _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r13),%ebp _litmus_P3_7_: cmpl $0,%ebp _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rax) _litmus_P3_12_: movl $0,(%r13) _litmus_P3_13_: movl $1,(%r14) _litmus_P3_14_: movl (%r14),%ecx _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%ebp _litmus_P3_17_: xchgl %ebp,(%r12) _litmus_P3_18_: cmpl $0,%ebp _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%r12),%ebp _litmus_P3_22_: cmpl $0,%ebp _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r15),%ebx _litmus_P3_27_: movl $0,(%r12) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r15d _litmus_P2_2_: xchgl %r15d,(%r10) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r12) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%r11) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r11),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r13),%eax _litmus_P2_25_: movl $0,(%r11) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r13d _litmus_P1_2_: xchgl %r13d,(%rax) _litmus_P1_3_: cmpl $0,%r13d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r13d _litmus_P1_7_: cmpl $0,%r13d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r10) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r13d _litmus_P1_15_: xchgl %r13d,(%r9) _litmus_P1_16_: cmpl $0,%r13d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r9),%r13d _litmus_P1_20_: cmpl $0,%r13d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r11) _litmus_P1_25_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%r10) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r10),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r12) _litmus_P0_12_: movl $0,(%r10) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r15d _litmus_P0_15_: xchgl %r15d,(%r11) _litmus_P0_16_: cmpl $0,%r15d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r11),%r15d _litmus_P0_20_: cmpl $0,%r15d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r13),%eax _litmus_P0_25_: movl $0,(%r11) Test X039-L Required Histogram (15 states) 3512 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 1144675:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=1; 1133171:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 34158287:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=1; 4105096:>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 39667286:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=1; 47749262:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 215141944:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=1; 2080 :>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=0; y=2; 9425 :>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 2613109:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=0; y=2; 10257 :>0:EAX=0; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 914392:>0:EAX=1; 2:EAX=0; 3:EAX=1; 3:EBX=1; y=2; 2453297:>0:EAX=0; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; 50894207:>0:EAX=1; 2:EAX=1; 3:EAX=1; 3:EBX=1; y=2; Ok Witnesses Positive: 400000000, 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 75.80 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%ebp _litmus_P3_2_: xchgl %ebp,(%r13) _litmus_P3_3_: cmpl $0,%ebp _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r13),%ebp _litmus_P3_7_: cmpl $0,%ebp _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%rax) _litmus_P3_12_: movl $0,(%r13) _litmus_P3_13_: movl $1,(%r14) _litmus_P3_14_: movl (%r14),%ecx _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%ebp _litmus_P3_17_: xchgl %ebp,(%r12) _litmus_P3_18_: cmpl $0,%ebp _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%r12),%ebp _litmus_P3_22_: cmpl $0,%ebp _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r15),%ebx _litmus_P3_27_: movl $0,(%r12) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r15d _litmus_P2_2_: xchgl %r15d,(%r10) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r12) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%r11) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r11),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r13),%eax _litmus_P2_25_: movl $0,(%r11) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r13d _litmus_P1_2_: xchgl %r13d,(%rax) _litmus_P1_3_: cmpl $0,%r13d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r13d _litmus_P1_7_: cmpl $0,%r13d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r10) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r13d _litmus_P1_15_: xchgl %r13d,(%r9) _litmus_P1_16_: cmpl $0,%r13d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r9),%r13d _litmus_P1_20_: cmpl $0,%r13d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r11) _litmus_P1_25_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X040-L Required Histogram (15 states) 1180773:>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=1; 35298243:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=1; 40170914:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=1; 223215201:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=1; 6175 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=2; y=1; 1610514:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=1; 4655472:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=1; 49504632:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=1; 1532 :>2:EAX=0; 3:EAX=1; 3:EBX=0; x=1; y=2; 2865101:>2:EAX=1; 3:EAX=1; 3:EBX=0; x=1; y=2; 914988:>2:EAX=0; 3:EAX=1; 3:EBX=1; x=1; y=2; 39585747:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=1; y=2; 3467 :>2:EAX=1; 3:EAX=1; 3:EBX=0; x=2; y=2; 9123 :>2:EAX=0; 3:EAX=1; 3:EBX=1; x=2; y=2; 978118:>2:EAX=1; 3:EAX=1; 3:EBX=1; x=2; y=2; Ok Witnesses Positive: 400000000, 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 82.25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%ebp _litmus_P1_2_: xchgl %ebp,(%r12) _litmus_P1_3_: cmpl $0,%ebp _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r12),%ebp _litmus_P1_7_: cmpl $0,%ebp _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r14) _litmus_P1_12_: movl $0,(%r12) _litmus_P1_13_: movl $1,(%r15) _litmus_P1_14_: movl (%r15),%ecx _litmus_P1_15_: LitLock09: _litmus_P1_16_: movl $1,%ebp _litmus_P1_17_: xchgl %ebp,(%r13) _litmus_P1_18_: cmpl $0,%ebp _litmus_P1_19_: je LitLock11 _litmus_P1_20_: LitLock10: _litmus_P1_21_: movl (%r13),%ebp _litmus_P1_22_: cmpl $0,%ebp _litmus_P1_23_: je LitLock09 _litmus_P1_24_: jmp LitLock10 _litmus_P1_25_: LitLock11: _litmus_P1_26_: movl (%rax),%ebx _litmus_P1_27_: movl $0,(%r13) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%r9) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r9),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r11) _litmus_P0_12_: movl $0,(%r9) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%rax) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rax),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r10) _litmus_P0_25_: movl $0,(%rax) Test X041-L Required Histogram (3 states) 22079096:>1:EAX=1; 1:EBX=0; x=1; 735002577:>1:EAX=1; 1:EBX=1; x=1; 42918327:>1:EAX=1; 1:EBX=1; x=2; Ok Witnesses Positive: 800000000, 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 51.19 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%edi _litmus_P2_2_: xchgl %edi,(%r13) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r13),%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,(%r15) _litmus_P2_12_: movl $0,(%r13) _litmus_P2_13_: movl $1,(%rax) _litmus_P2_14_: movl (%rax),%edx _litmus_P2_15_: LitLock15: _litmus_P2_16_: movl $1,%edi _litmus_P2_17_: xchgl %edi,(%r12) _litmus_P2_18_: cmpl $0,%edi _litmus_P2_19_: je LitLock17 _litmus_P2_20_: LitLock16: _litmus_P2_21_: movl (%r12),%edi _litmus_P2_22_: cmpl $0,%edi _litmus_P2_23_: je LitLock15 _litmus_P2_24_: jmp LitLock16 _litmus_P2_25_: LitLock17: _litmus_P2_26_: movl (%r14),%ecx _litmus_P2_27_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r14d _litmus_P1_2_: xchgl %r14d,(%rax) _litmus_P1_3_: cmpl $0,%r14d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r14d _litmus_P1_7_: cmpl $0,%r14d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r12) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r14d _litmus_P1_15_: xchgl %r14d,(%rdx) _litmus_P1_16_: cmpl $0,%r14d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdx),%r14d _litmus_P1_20_: cmpl $0,%r14d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r13) _litmus_P1_25_: movl $0,(%rdx) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%rdx) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdx),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r13) _litmus_P0_12_: movl $0,(%rdx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r15d _litmus_P0_15_: xchgl %r15d,(%r12) _litmus_P0_16_: cmpl $0,%r15d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r12),%r15d _litmus_P0_20_: cmpl $0,%r15d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r14),%eax _litmus_P0_25_: movl $0,(%r12) Test X042-L Required Histogram (7 states) 2635359:>0:EAX=0; 2:EAX=1; 2:EBX=0; y=1; 62513276:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=1; 89694260:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=1; 237352649:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=1; 1478873:>0:EAX=1; 2:EAX=1; 2:EBX=0; y=2; 6674665:>0:EAX=0; 2:EAX=1; 2:EBX=1; y=2; 99650918:>0:EAX=1; 2:EAX=1; 2:EBX=1; y=2; Ok Witnesses Positive: 500000000, 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 94.21 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%ebp _litmus_P3_2_: xchgl %ebp,(%r13) _litmus_P3_3_: cmpl $0,%ebp _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r13),%ebp _litmus_P3_7_: cmpl $0,%ebp _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%rax) _litmus_P3_12_: movl $0,(%r13) _litmus_P3_13_: movl $1,(%r14) _litmus_P3_14_: movl (%r14),%ecx _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%ebp _litmus_P3_17_: xchgl %ebp,(%r12) _litmus_P3_18_: cmpl $0,%ebp _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%r12),%ebp _litmus_P3_22_: cmpl $0,%ebp _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r15),%ebx _litmus_P3_27_: movl $0,(%r12) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r13d _litmus_P2_2_: xchgl %r13d,(%rax) _litmus_P2_3_: cmpl $0,%r13d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rax),%r13d _litmus_P2_7_: cmpl $0,%r13d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r10) _litmus_P2_12_: movl $0,(%rax) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r13d _litmus_P2_15_: xchgl %r13d,(%r9) _litmus_P2_16_: cmpl $0,%r13d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r9),%r13d _litmus_P2_20_: cmpl $0,%r13d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%r11) _litmus_P2_25_: movl $0,(%r9) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%r10) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r12) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r11) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r11),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r13),%eax _litmus_P1_25_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%r10) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r10),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r12) _litmus_P0_12_: movl $0,(%r10) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r15d _litmus_P0_15_: xchgl %r15d,(%r11) _litmus_P0_16_: cmpl $0,%r15d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r11),%r15d _litmus_P0_20_: cmpl $0,%r15d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r13),%eax _litmus_P0_25_: movl $0,(%r11) Test X043-L Required Histogram (15 states) 3199 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 2723479:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=1; 1181326:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 27161198:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=1; 1706705:>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 47972835:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=1; 46449259:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 208411040:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=1; 2574 :>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=0; z=2; 1465 :>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 480882:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=0; z=2; 40707 :>0:EAX=0; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 3336431:>0:EAX=1; 1:EAX=0; 3:EAX=1; 3:EBX=1; z=2; 4394246:>0:EAX=0; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; 56134654:>0:EAX=1; 1:EAX=1; 3:EAX=1; 3:EBX=1; z=2; Ok Witnesses Positive: 400000000, 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 76.31 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%ebp _litmus_P3_2_: xchgl %ebp,(%r13) _litmus_P3_3_: cmpl $0,%ebp _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r13),%ebp _litmus_P3_7_: cmpl $0,%ebp _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%rax) _litmus_P3_12_: movl $0,(%r13) _litmus_P3_13_: movl $1,(%r14) _litmus_P3_14_: movl (%r14),%ecx _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%ebp _litmus_P3_17_: xchgl %ebp,(%r12) _litmus_P3_18_: cmpl $0,%ebp _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%r12),%ebp _litmus_P3_22_: cmpl $0,%ebp _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r15),%ebx _litmus_P3_27_: movl $0,(%r12) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r13d _litmus_P2_2_: xchgl %r13d,(%rax) _litmus_P2_3_: cmpl $0,%r13d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rax),%r13d _litmus_P2_7_: cmpl $0,%r13d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r10) _litmus_P2_12_: movl $0,(%rax) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r13d _litmus_P2_15_: xchgl %r13d,(%r9) _litmus_P2_16_: cmpl $0,%r13d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r9),%r13d _litmus_P2_20_: cmpl $0,%r13d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%r11) _litmus_P2_25_: movl $0,(%r9) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%r10) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r12) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r11) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r11),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r13),%eax _litmus_P1_25_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X044-L Required Histogram (15 states) 3373077:>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=1; 29733347:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=1; 39205210:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=1; 216180769:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=1; 1666 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=2; z=1; 1561079:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=1; 741441:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=1; 46757854:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=1; 2363 :>1:EAX=0; 3:EAX=1; 3:EBX=0; x=1; z=2; 493014:>1:EAX=1; 3:EAX=1; 3:EBX=0; x=1; z=2; 3061297:>1:EAX=0; 3:EAX=1; 3:EBX=1; x=1; z=2; 54101755:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=1; z=2; 4037 :>1:EAX=1; 3:EAX=1; 3:EBX=0; x=2; z=2; 25094 :>1:EAX=0; 3:EAX=1; 3:EBX=1; x=2; z=2; 4757997:>1:EAX=1; 3:EAX=1; 3:EBX=1; x=2; z=2; Ok Witnesses Positive: 400000000, 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 82.54 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%edi _litmus_P2_2_: xchgl %edi,(%r13) _litmus_P2_3_: cmpl $0,%edi _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r13),%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,(%r15) _litmus_P2_12_: movl $0,(%r13) _litmus_P2_13_: movl $1,(%rax) _litmus_P2_14_: movl (%rax),%edx _litmus_P2_15_: LitLock15: _litmus_P2_16_: movl $1,%edi _litmus_P2_17_: xchgl %edi,(%r12) _litmus_P2_18_: cmpl $0,%edi _litmus_P2_19_: je LitLock17 _litmus_P2_20_: LitLock16: _litmus_P2_21_: movl (%r12),%edi _litmus_P2_22_: cmpl $0,%edi _litmus_P2_23_: je LitLock15 _litmus_P2_24_: jmp LitLock16 _litmus_P2_25_: LitLock17: _litmus_P2_26_: movl (%r14),%ecx _litmus_P2_27_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r14d _litmus_P1_2_: xchgl %r14d,(%rax) _litmus_P1_3_: cmpl $0,%r14d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r14d _litmus_P1_7_: cmpl $0,%r14d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r12) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r14d _litmus_P1_15_: xchgl %r14d,(%rdx) _litmus_P1_16_: cmpl $0,%r14d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdx),%r14d _litmus_P1_20_: cmpl $0,%r14d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r13) _litmus_P1_25_: movl $0,(%rdx) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%rax) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r12) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%rdx) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdx),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r13) _litmus_P0_25_: movl $0,(%rdx) Test X045-L Required Histogram (7 states) 64941031:>2:EAX=1; 2:EBX=0; x=1; y=1; 251411677:>2:EAX=1; 2:EBX=1; x=1; y=1; 4100780:>2:EAX=1; 2:EBX=0; x=2; y=1; 91876611:>2:EAX=1; 2:EBX=1; x=2; y=1; 1409624:>2:EAX=1; 2:EBX=0; x=1; y=2; 83272561:>2:EAX=1; 2:EBX=1; x=1; y=2; 2987716:>2:EAX=1; 2:EBX=1; x=2; y=2; Ok Witnesses Positive: 500000000, 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 105.08 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%ebp _litmus_P3_2_: xchgl %ebp,(%r13) _litmus_P3_3_: cmpl $0,%ebp _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r13),%ebp _litmus_P3_7_: cmpl $0,%ebp _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%rax) _litmus_P3_12_: movl $0,(%r13) _litmus_P3_13_: movl $1,(%r14) _litmus_P3_14_: movl (%r14),%ecx _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%ebp _litmus_P3_17_: xchgl %ebp,(%r12) _litmus_P3_18_: cmpl $0,%ebp _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%r12),%ebp _litmus_P3_22_: cmpl $0,%ebp _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r15),%ebx _litmus_P3_27_: movl $0,(%r12) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r13d _litmus_P2_2_: xchgl %r13d,(%rax) _litmus_P2_3_: cmpl $0,%r13d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rax),%r13d _litmus_P2_7_: cmpl $0,%r13d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r10) _litmus_P2_12_: movl $0,(%rax) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r13d _litmus_P2_15_: xchgl %r13d,(%r9) _litmus_P2_16_: cmpl $0,%r13d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r9),%r13d _litmus_P2_20_: cmpl $0,%r13d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%r11) _litmus_P2_25_: movl $0,(%r9) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r13d _litmus_P1_2_: xchgl %r13d,(%rax) _litmus_P1_3_: cmpl $0,%r13d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r13d _litmus_P1_7_: cmpl $0,%r13d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r10) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r13d _litmus_P1_15_: xchgl %r13d,(%r9) _litmus_P1_16_: cmpl $0,%r13d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r9),%r13d _litmus_P1_20_: cmpl $0,%r13d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r11) _litmus_P1_25_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%r10) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r10),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r12) _litmus_P0_12_: movl $0,(%r10) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r15d _litmus_P0_15_: xchgl %r15d,(%r11) _litmus_P0_16_: cmpl $0,%r15d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r11),%r15d _litmus_P0_20_: cmpl $0,%r15d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r13),%eax _litmus_P0_25_: movl $0,(%r11) Test X046-L Required Histogram (15 states) 1233335:>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=1; 28993078:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=1; 45971422:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=1; 214525161:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=1; 6085 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=2; z=1; 2645220:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=1; 2794021:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=1; 54341704:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=1; 1228 :>0:EAX=0; 3:EAX=1; 3:EBX=0; y=1; z=2; 538868:>0:EAX=1; 3:EAX=1; 3:EBX=0; y=1; z=2; 4589110:>0:EAX=0; 3:EAX=1; 3:EBX=1; y=1; z=2; 42869323:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=1; z=2; 1199 :>0:EAX=1; 3:EAX=1; 3:EBX=0; y=2; z=2; 29197 :>0:EAX=0; 3:EAX=1; 3:EBX=1; y=2; z=2; 1461049:>0:EAX=1; 3:EAX=1; 3:EBX=1; y=2; z=2; Ok Witnesses Positive: 400000000, 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 81.98 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%ebp _litmus_P3_2_: xchgl %ebp,(%r13) _litmus_P3_3_: cmpl $0,%ebp _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r13),%ebp _litmus_P3_7_: cmpl $0,%ebp _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%rax) _litmus_P3_12_: movl $0,(%r13) _litmus_P3_13_: movl $1,(%r14) _litmus_P3_14_: movl (%r14),%ecx _litmus_P3_15_: LitLock21: _litmus_P3_16_: movl $1,%ebp _litmus_P3_17_: xchgl %ebp,(%r12) _litmus_P3_18_: cmpl $0,%ebp _litmus_P3_19_: je LitLock23 _litmus_P3_20_: LitLock22: _litmus_P3_21_: movl (%r12),%ebp _litmus_P3_22_: cmpl $0,%ebp _litmus_P3_23_: je LitLock21 _litmus_P3_24_: jmp LitLock22 _litmus_P3_25_: LitLock23: _litmus_P3_26_: movl (%r15),%ebx _litmus_P3_27_: movl $0,(%r12) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r13d _litmus_P2_2_: xchgl %r13d,(%rax) _litmus_P2_3_: cmpl $0,%r13d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rax),%r13d _litmus_P2_7_: cmpl $0,%r13d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r10) _litmus_P2_12_: movl $0,(%rax) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r13d _litmus_P2_15_: xchgl %r13d,(%r9) _litmus_P2_16_: cmpl $0,%r13d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r9),%r13d _litmus_P2_20_: cmpl $0,%r13d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%r11) _litmus_P2_25_: movl $0,(%r9) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r13d _litmus_P1_2_: xchgl %r13d,(%rax) _litmus_P1_3_: cmpl $0,%r13d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r13d _litmus_P1_7_: cmpl $0,%r13d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r10) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r13d _litmus_P1_15_: xchgl %r13d,(%r9) _litmus_P1_16_: cmpl $0,%r13d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r9),%r13d _litmus_P1_20_: cmpl $0,%r13d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r11) _litmus_P1_25_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X047-L Required Histogram (15 states) 30020447:>3:EAX=1; 3:EBX=0; x=1; y=1; z=1; 219492320:>3:EAX=1; 3:EBX=1; x=1; y=1; z=1; 1674784:>3:EAX=1; 3:EBX=0; x=2; y=1; z=1; 49898267:>3:EAX=1; 3:EBX=1; x=2; y=1; z=1; 3420722:>3:EAX=1; 3:EBX=0; x=1; y=2; z=1; 43168595:>3:EAX=1; 3:EBX=1; x=1; y=2; z=1; 2699 :>3:EAX=1; 3:EBX=0; x=2; y=2; z=1; 1067493:>3:EAX=1; 3:EBX=1; x=2; y=2; z=1; 580890:>3:EAX=1; 3:EBX=0; x=1; y=1; z=2; 44135938:>3:EAX=1; 3:EBX=1; x=1; y=1; z=2; 2544 :>3:EAX=1; 3:EBX=0; x=2; y=1; z=2; 5071619:>3:EAX=1; 3:EBX=1; x=2; y=1; z=2; 1092 :>3:EAX=1; 3:EBX=0; x=1; y=2; z=2; 1441877:>3:EAX=1; 3:EBX=1; x=1; y=2; z=2; 20713 :>3:EAX=1; 3:EBX=1; x=2; y=2; z=2; Ok Witnesses Positive: 400000000, 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 88.99 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r14d _litmus_P1_2_: xchgl %r14d,(%r9) _litmus_P1_3_: cmpl $0,%r14d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r9),%r14d _litmus_P1_7_: cmpl $0,%r14d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r11) _litmus_P1_12_: movl $0,(%r9) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r14d _litmus_P1_15_: xchgl %r14d,(%r10) _litmus_P1_16_: cmpl $0,%r14d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r10),%r14d _litmus_P1_20_: cmpl $0,%r14d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r12),%eax _litmus_P1_25_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%r10) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r10),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r12) _litmus_P0_12_: movl $0,(%r10) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%r9) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r11),%eax _litmus_P0_25_: movl $0,(%r9) Test X048-L Required Histogram (3 states) 31740804:>0:EAX=1; 1:EAX=0; 32054485:>0:EAX=0; 1:EAX=1; 736204711:>0:EAX=1; 1:EAX=1; Ok Witnesses Positive: 800000000, 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 35.76 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_2_: xchgl %r15d,(%rdx) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rdx),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r13) _litmus_P2_12_: movl $0,(%rdx) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%r12) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r12),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r14),%eax _litmus_P2_25_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%rdx) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rdx),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r13) _litmus_P1_12_: movl $0,(%rdx) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r12) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r12),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r14),%eax _litmus_P1_25_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r15d _litmus_P0_2_: xchgl %r15d,(%r12) _litmus_P0_3_: cmpl $0,%r15d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r12),%r15d _litmus_P0_7_: cmpl $0,%r15d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r14) _litmus_P0_12_: movl $0,(%r12) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r15d _litmus_P0_15_: xchgl %r15d,(%rdx) _litmus_P0_16_: cmpl $0,%r15d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rdx),%r15d _litmus_P0_20_: cmpl $0,%r15d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r13),%eax _litmus_P0_25_: movl $0,(%rdx) Test X049-L Required Histogram (7 states) 3062373:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3241269:>0:EAX=0; 1:EAX=1; 2:EAX=0; 88091917:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3268580:>0:EAX=0; 1:EAX=0; 2:EAX=1; 93284213:>0:EAX=1; 1:EAX=0; 2:EAX=1; 91090153:>0:EAX=0; 1:EAX=1; 2:EAX=1; 217961495:>0:EAX=1; 1:EAX=1; 2:EAX=1; Ok Witnesses Positive: 500000000, 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 77.38 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r14d _litmus_P3_2_: xchgl %r14d,(%r10) _litmus_P3_3_: cmpl $0,%r14d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r10),%r14d _litmus_P3_7_: cmpl $0,%r14d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%r12) _litmus_P3_12_: movl $0,(%r10) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r14d _litmus_P3_15_: xchgl %r14d,(%r9) _litmus_P3_16_: cmpl $0,%r14d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r9),%r14d _litmus_P3_20_: cmpl $0,%r14d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%r11),%eax _litmus_P3_25_: movl $0,(%r9) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r14d _litmus_P2_2_: xchgl %r14d,(%r9) _litmus_P2_3_: cmpl $0,%r14d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r9),%r14d _litmus_P2_7_: cmpl $0,%r14d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r11) _litmus_P2_12_: movl $0,(%r9) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r14d _litmus_P2_15_: xchgl %r14d,(%r10) _litmus_P2_16_: cmpl $0,%r14d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r10),%r14d _litmus_P2_20_: cmpl $0,%r14d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r12),%eax _litmus_P2_25_: movl $0,(%r10) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r14d _litmus_P1_2_: xchgl %r14d,(%r9) _litmus_P1_3_: cmpl $0,%r14d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r9),%r14d _litmus_P1_7_: cmpl $0,%r14d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $1,(%r11) _litmus_P1_12_: movl $0,(%r9) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r14d _litmus_P1_15_: xchgl %r14d,(%r10) _litmus_P1_16_: cmpl $0,%r14d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r10),%r14d _litmus_P1_20_: cmpl $0,%r14d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r12),%eax _litmus_P1_25_: movl $0,(%r10) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%r9) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r9),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r11) _litmus_P0_12_: movl $0,(%r9) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%r10) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r10),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl (%r12),%eax _litmus_P0_25_: movl $0,(%r10) Test X050-L Required Histogram (15 states) 9061 :>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=0; 9877 :>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=0; 1844053:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=0; 8758 :>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=0; 3774466:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=0; 1568383:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=0; 51078801:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=0; 7235 :>0:EAX=0; 1:EAX=0; 2:EAX=0; 3:EAX=1; 1545844:>0:EAX=1; 1:EAX=0; 2:EAX=0; 3:EAX=1; 3275960:>0:EAX=0; 1:EAX=1; 2:EAX=0; 3:EAX=1; 44659125:>0:EAX=1; 1:EAX=1; 2:EAX=0; 3:EAX=1; 1707406:>0:EAX=0; 1:EAX=0; 2:EAX=1; 3:EAX=1; 49556181:>0:EAX=1; 1:EAX=0; 2:EAX=1; 3:EAX=1; 44580244:>0:EAX=0; 1:EAX=1; 2:EAX=1; 3:EAX=1; 196374606:>0:EAX=1; 1:EAX=1; 2:EAX=1; 3:EAX=1; Ok Witnesses Positive: 400000000, 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 64.47 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r11) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r11),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%r13) _litmus_P3_12_: movl $0,(%r11) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r15d _litmus_P3_15_: xchgl %r15d,(%r10) _litmus_P3_16_: cmpl $0,%r15d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r10),%r15d _litmus_P3_20_: cmpl $0,%r15d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%r12),%eax _litmus_P3_25_: movl $0,(%r10) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r15d _litmus_P2_2_: xchgl %r15d,(%r10) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r12) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%r11) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r11),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r13),%eax _litmus_P2_25_: movl $0,(%r11) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%r10) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r12) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r11) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r11),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r13),%eax _litmus_P1_25_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X051-L Required Histogram (15 states) 6701 :>1:EAX=0; 2:EAX=0; 3:EAX=0; x=1; 1768198:>1:EAX=1; 2:EAX=0; 3:EAX=0; x=1; 4145009:>1:EAX=0; 2:EAX=1; 3:EAX=0; x=1; 47854900:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=1; 1852053:>1:EAX=0; 2:EAX=0; 3:EAX=1; x=1; 50109513:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=1; 35764010:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=1; 199803126:>1:EAX=1; 2:EAX=1; 3:EAX=1; x=1; 15055 :>1:EAX=1; 2:EAX=0; 3:EAX=0; x=2; 2964 :>1:EAX=0; 2:EAX=1; 3:EAX=0; x=2; 2339316:>1:EAX=1; 2:EAX=1; 3:EAX=0; x=2; 2241 :>1:EAX=0; 2:EAX=0; 3:EAX=1; x=2; 3470857:>1:EAX=1; 2:EAX=0; 3:EAX=1; x=2; 608621:>1:EAX=0; 2:EAX=1; 3:EAX=1; x=2; 52257436:>1:EAX=1; 2:EAX=1; 3:EAX=1; x=2; Ok Witnesses Positive: 400000000, 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 70.16 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_2_: xchgl %r15d,(%rdx) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rdx),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r13) _litmus_P2_12_: movl $0,(%rdx) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%r12) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r12),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r14),%eax _litmus_P2_25_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%rdx) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rdx),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r13) _litmus_P1_12_: movl $0,(%rdx) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r12) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r12),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r14),%eax _litmus_P1_25_: movl $0,(%r12) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%rdx) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdx),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r13) _litmus_P0_12_: movl $0,(%rdx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%rax) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rax),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r12) _litmus_P0_25_: movl $0,(%rax) Test X052-L Required Histogram (7 states) 2673253:>1:EAX=0; 2:EAX=0; x=1; 94562177:>1:EAX=1; 2:EAX=0; x=1; 66555266:>1:EAX=0; 2:EAX=1; x=1; 244588866:>1:EAX=1; 2:EAX=1; x=1; 3574843:>1:EAX=1; 2:EAX=0; x=2; 979780:>1:EAX=0; 2:EAX=1; x=2; 87065815:>1:EAX=1; 2:EAX=1; x=2; Ok Witnesses Positive: 500000000, 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 85.20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r11) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r11),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $1,(%r13) _litmus_P3_12_: movl $0,(%r11) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r15d _litmus_P3_15_: xchgl %r15d,(%r10) _litmus_P3_16_: cmpl $0,%r15d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r10),%r15d _litmus_P3_20_: cmpl $0,%r15d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%r12),%eax _litmus_P3_25_: movl $0,(%r10) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r15d _litmus_P2_2_: xchgl %r15d,(%r10) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%r10),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r12) _litmus_P2_12_: movl $0,(%r10) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%r11) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r11),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r13),%eax _litmus_P2_25_: movl $0,(%r11) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r13d _litmus_P1_2_: xchgl %r13d,(%rax) _litmus_P1_3_: cmpl $0,%r13d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r13d _litmus_P1_7_: cmpl $0,%r13d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r10) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r13d _litmus_P1_15_: xchgl %r13d,(%r9) _litmus_P1_16_: cmpl $0,%r13d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r9),%r13d _litmus_P1_20_: cmpl $0,%r13d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r11) _litmus_P1_25_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X053-L Required Histogram (15 states) 2009557:>2:EAX=0; 3:EAX=0; x=1; y=1; 51394805:>2:EAX=1; 3:EAX=0; x=1; y=1; 36635036:>2:EAX=0; 3:EAX=1; x=1; y=1; 204486442:>2:EAX=1; 3:EAX=1; x=1; y=1; 11451 :>2:EAX=0; 3:EAX=0; x=2; y=1; 2293551:>2:EAX=1; 3:EAX=0; x=2; y=1; 4078531:>2:EAX=0; 3:EAX=1; x=2; y=1; 50912141:>2:EAX=1; 3:EAX=1; x=2; y=1; 2320 :>2:EAX=0; 3:EAX=0; x=1; y=2; 4558609:>2:EAX=1; 3:EAX=0; x=1; y=2; 718057:>2:EAX=0; 3:EAX=1; x=1; y=2; 41850307:>2:EAX=1; 3:EAX=1; x=1; y=2; 7379 :>2:EAX=1; 3:EAX=0; x=2; y=2; 2020 :>2:EAX=0; 3:EAX=1; x=2; y=2; 1039794:>2:EAX=1; 3:EAX=1; x=2; y=2; Ok Witnesses Positive: 400000000, 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 76.06 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P1_2_: xchgl %r15d,(%r10) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r12) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r11) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r11),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r13),%eax _litmus_P1_25_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%r9) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%r9),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r11) _litmus_P0_12_: movl $0,(%r9) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%rax) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rax),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r10) _litmus_P0_25_: movl $0,(%rax) Test X054-L Required Histogram (3 states) 33667584:>1:EAX=0; x=1; 729560156:>1:EAX=1; x=1; 36772260:>1:EAX=1; x=2; Ok Witnesses Positive: 800000000, Negative: 0 Condition forall (1:EAX=1 /\ (x=2 \/ x=1) \/ 1:EAX=0 /\ x=1) is validated Hash=98231cefc19f79f58d18ef9e912f76fc Time X054-L 40.26 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r11) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r11),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%r13) _litmus_P3_12_: movl $0,(%r11) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r15d _litmus_P3_15_: xchgl %r15d,(%r10) _litmus_P3_16_: cmpl $0,%r15d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r10),%r15d _litmus_P3_20_: cmpl $0,%r15d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%r12),%eax _litmus_P3_25_: movl $0,(%r10) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r13d _litmus_P2_2_: xchgl %r13d,(%rax) _litmus_P2_3_: cmpl $0,%r13d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rax),%r13d _litmus_P2_7_: cmpl $0,%r13d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $1,(%r10) _litmus_P2_12_: movl $0,(%rax) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r13d _litmus_P2_15_: xchgl %r13d,(%r9) _litmus_P2_16_: cmpl $0,%r13d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r9),%r13d _litmus_P2_20_: cmpl $0,%r13d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%r11) _litmus_P2_25_: movl $0,(%r9) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r15d _litmus_P1_2_: xchgl %r15d,(%r10) _litmus_P1_3_: cmpl $0,%r15d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%r10),%r15d _litmus_P1_7_: cmpl $0,%r15d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r12) _litmus_P1_12_: movl $0,(%r10) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r15d _litmus_P1_15_: xchgl %r15d,(%r11) _litmus_P1_16_: cmpl $0,%r15d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r11),%r15d _litmus_P1_20_: cmpl $0,%r15d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl (%r13),%eax _litmus_P1_25_: movl $0,(%r11) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X055-L Required Histogram (15 states) 4707529:>1:EAX=0; 3:EAX=0; x=1; z=1; 41167690:>1:EAX=1; 3:EAX=0; x=1; z=1; 40252825:>1:EAX=0; 3:EAX=1; x=1; z=1; 210005535:>1:EAX=1; 3:EAX=1; x=1; z=1; 3385 :>1:EAX=0; 3:EAX=0; x=2; z=1; 2324365:>1:EAX=1; 3:EAX=0; x=2; z=1; 759485:>1:EAX=0; 3:EAX=1; x=2; z=1; 46531217:>1:EAX=1; 3:EAX=1; x=2; z=1; 4869 :>1:EAX=0; 3:EAX=0; x=1; z=2; 854465:>1:EAX=1; 3:EAX=0; x=1; z=2; 2362259:>1:EAX=0; 3:EAX=1; x=1; z=2; 47264387:>1:EAX=1; 3:EAX=1; x=1; z=2; 8356 :>1:EAX=1; 3:EAX=0; x=2; z=2; 8212 :>1:EAX=0; 3:EAX=1; x=2; z=2; 3745421:>1:EAX=1; 3:EAX=1; x=2; z=2; Ok Witnesses Positive: 400000000, 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 76.68 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P2_2_: xchgl %r15d,(%rdx) _litmus_P2_3_: cmpl $0,%r15d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rdx),%r15d _litmus_P2_7_: cmpl $0,%r15d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r13) _litmus_P2_12_: movl $0,(%rdx) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r15d _litmus_P2_15_: xchgl %r15d,(%r12) _litmus_P2_16_: cmpl $0,%r15d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r12),%r15d _litmus_P2_20_: cmpl $0,%r15d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl (%r14),%eax _litmus_P2_25_: movl $0,(%r12) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r14d _litmus_P1_2_: xchgl %r14d,(%rax) _litmus_P1_3_: cmpl $0,%r14d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r14d _litmus_P1_7_: cmpl $0,%r14d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r12) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r14d _litmus_P1_15_: xchgl %r14d,(%rdx) _litmus_P1_16_: cmpl $0,%r14d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%rdx),%r14d _litmus_P1_20_: cmpl $0,%r14d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r13) _litmus_P1_25_: movl $0,(%rdx) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r14d _litmus_P0_2_: xchgl %r14d,(%rdx) _litmus_P0_3_: cmpl $0,%r14d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rdx),%r14d _litmus_P0_7_: cmpl $0,%r14d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r13) _litmus_P0_12_: movl $0,(%rdx) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r14d _litmus_P0_15_: xchgl %r14d,(%rax) _litmus_P0_16_: cmpl $0,%r14d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%rax),%r14d _litmus_P0_20_: cmpl $0,%r14d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r12) _litmus_P0_25_: movl $0,(%rax) Test X056-L Required Histogram (7 states) 79671296:>2:EAX=0; x=1; y=1; 241234733:>2:EAX=1; x=1; y=1; 3936099:>2:EAX=0; x=2; y=1; 93873580:>2:EAX=1; x=2; y=1; 1348671:>2:EAX=0; x=1; y=2; 78293095:>2:EAX=1; x=1; y=2; 1642526:>2:EAX=1; x=2; y=2; Ok Witnesses Positive: 500000000, 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 95.27 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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,%r15d _litmus_P3_2_: xchgl %r15d,(%r11) _litmus_P3_3_: cmpl $0,%r15d _litmus_P3_4_: je LitLock20 _litmus_P3_5_: LitLock19: _litmus_P3_6_: movl (%r11),%r15d _litmus_P3_7_: cmpl $0,%r15d _litmus_P3_8_: je LitLock18 _litmus_P3_9_: jmp LitLock19 _litmus_P3_10_: LitLock20: _litmus_P3_11_: movl $2,(%r13) _litmus_P3_12_: movl $0,(%r11) _litmus_P3_13_: LitLock21: _litmus_P3_14_: movl $1,%r15d _litmus_P3_15_: xchgl %r15d,(%r10) _litmus_P3_16_: cmpl $0,%r15d _litmus_P3_17_: je LitLock23 _litmus_P3_18_: LitLock22: _litmus_P3_19_: movl (%r10),%r15d _litmus_P3_20_: cmpl $0,%r15d _litmus_P3_21_: je LitLock21 _litmus_P3_22_: jmp LitLock22 _litmus_P3_23_: LitLock23: _litmus_P3_24_: movl (%r12),%eax _litmus_P3_25_: movl $0,(%r10) _litmus_P2_0_: LitLock12: _litmus_P2_1_: movl $1,%r13d _litmus_P2_2_: xchgl %r13d,(%rax) _litmus_P2_3_: cmpl $0,%r13d _litmus_P2_4_: je LitLock14 _litmus_P2_5_: LitLock13: _litmus_P2_6_: movl (%rax),%r13d _litmus_P2_7_: cmpl $0,%r13d _litmus_P2_8_: je LitLock12 _litmus_P2_9_: jmp LitLock13 _litmus_P2_10_: LitLock14: _litmus_P2_11_: movl $2,(%r10) _litmus_P2_12_: movl $0,(%rax) _litmus_P2_13_: LitLock15: _litmus_P2_14_: movl $1,%r13d _litmus_P2_15_: xchgl %r13d,(%r9) _litmus_P2_16_: cmpl $0,%r13d _litmus_P2_17_: je LitLock17 _litmus_P2_18_: LitLock16: _litmus_P2_19_: movl (%r9),%r13d _litmus_P2_20_: cmpl $0,%r13d _litmus_P2_21_: je LitLock15 _litmus_P2_22_: jmp LitLock16 _litmus_P2_23_: LitLock17: _litmus_P2_24_: movl $1,(%r11) _litmus_P2_25_: movl $0,(%r9) _litmus_P1_0_: LitLock06: _litmus_P1_1_: movl $1,%r13d _litmus_P1_2_: xchgl %r13d,(%rax) _litmus_P1_3_: cmpl $0,%r13d _litmus_P1_4_: je LitLock08 _litmus_P1_5_: LitLock07: _litmus_P1_6_: movl (%rax),%r13d _litmus_P1_7_: cmpl $0,%r13d _litmus_P1_8_: je LitLock06 _litmus_P1_9_: jmp LitLock07 _litmus_P1_10_: LitLock08: _litmus_P1_11_: movl $2,(%r10) _litmus_P1_12_: movl $0,(%rax) _litmus_P1_13_: LitLock09: _litmus_P1_14_: movl $1,%r13d _litmus_P1_15_: xchgl %r13d,(%r9) _litmus_P1_16_: cmpl $0,%r13d _litmus_P1_17_: je LitLock11 _litmus_P1_18_: LitLock10: _litmus_P1_19_: movl (%r9),%r13d _litmus_P1_20_: cmpl $0,%r13d _litmus_P1_21_: je LitLock09 _litmus_P1_22_: jmp LitLock10 _litmus_P1_23_: LitLock11: _litmus_P1_24_: movl $1,(%r11) _litmus_P1_25_: movl $0,(%r9) _litmus_P0_0_: LitLock00: _litmus_P0_1_: movl $1,%r13d _litmus_P0_2_: xchgl %r13d,(%rax) _litmus_P0_3_: cmpl $0,%r13d _litmus_P0_4_: je LitLock02 _litmus_P0_5_: LitLock01: _litmus_P0_6_: movl (%rax),%r13d _litmus_P0_7_: cmpl $0,%r13d _litmus_P0_8_: je LitLock00 _litmus_P0_9_: jmp LitLock01 _litmus_P0_10_: LitLock02: _litmus_P0_11_: movl $1,(%r10) _litmus_P0_12_: movl $0,(%rax) _litmus_P0_13_: LitLock03: _litmus_P0_14_: movl $1,%r13d _litmus_P0_15_: xchgl %r13d,(%r9) _litmus_P0_16_: cmpl $0,%r13d _litmus_P0_17_: je LitLock05 _litmus_P0_18_: LitLock04: _litmus_P0_19_: movl (%r9),%r13d _litmus_P0_20_: cmpl $0,%r13d _litmus_P0_21_: je LitLock03 _litmus_P0_22_: jmp LitLock04 _litmus_P0_23_: LitLock05: _litmus_P0_24_: movl $1,(%r11) _litmus_P0_25_: movl $0,(%r9) Test X057-L Required Histogram (15 states) 41576302:>3:EAX=0; x=1; y=1; z=1; 213927473:>3:EAX=1; x=1; y=1; z=1; 2377029:>3:EAX=0; x=2; y=1; z=1; 50147964:>3:EAX=1; x=2; y=1; z=1; 5062656:>3:EAX=0; x=1; y=2; z=1; 42060978:>3:EAX=1; x=1; y=2; z=1; 5340 :>3:EAX=0; x=2; y=2; z=1; 1052142:>3:EAX=1; x=2; y=2; z=1; 909877:>3:EAX=0; x=1; y=1; z=2; 37834748:>3:EAX=1; x=1; y=1; z=2; 4977 :>3:EAX=0; x=2; y=1; z=2; 4071207:>3:EAX=1; x=2; y=1; z=2; 1344 :>3:EAX=0; x=1; y=2; z=2; 961792:>3:EAX=1; x=1; y=2; z=2; 6171 :>3:EAX=1; x=2; y=2; z=2; Ok Witnesses Positive: 400000000, 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 83.43 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 0 #endif /* gcc options: -D_GNU_SOURCE -Wall -std=gnu99 -fomit-frame-pointer -O2 -m64 -pthread */ /* barrier: user */ /* launch: changing */ /* cache: false */ /* call: false */ /* affinity: incr8 */ /* randomise_affinity: false */ /* prealloc: false */ /* memory: indirect */ /* safer: true */ /* preload: true */ /* para: self */ /* speedcheck: false */ /* proc used: 0 */ GCCOPTS="-D_GNU_SOURCE -Wall -std=gnu99 -fomit-frame-pointer -O2 -m64 -pthread" LITMUSOPTS=-s 500k -r 200 Sun Jan 9 20:42:58 CET 2011